【问题标题】:Implementing my own print preview?实现我自己的打印预览?
【发布时间】:2010-11-05 02:04:51
【问题描述】:

我开发了自己的报表控件,它只是在控件窗口的客户端 DC 的 CDC 上绘制文本。我也有打印功能。报告输出直接发送到打印机。但是我想让用户在实际打印报告之前知道输出。

我无法使用 MFC 的打印预览架构来执行此操作,因为我的项目没有使用 doc/view 架构。我可以自己创建打印预览窗口吗? MFC 如何处理这个问题?在屏幕上显示打印机输出时是否需要进行任何特殊处理或牢记?我读过 MFC 使用 2 个 DC 进行打印预览。如果我要进行自定义打印预览,是否也需要这样做?

非常感谢您的意见! tia。

附:我使用 Visual Studio 6,没有选项可以将其更改为较新的版本,因为我无法添加 doc/view 支持。

【问题讨论】:

    标签: c++ mfc printing preview


    【解决方案1】:

    打印预览并没有那么特别。这只是意味着您必须将本来要渲染到打印机 DC 的内容渲染到屏幕(或位图)上。这主要意味着使用页面大小,并为上一页/下一页提供 UI 控件。

    【讨论】:

      【解决方案2】:

      我把这个code 编译成静态库。它适用于基于对话框的应用程序。
      如果您不需要特殊功能,它可以为您工作。

      我不得不挖掘 MFC 机制来添加额外的功能,但最后我放弃了它。如果您了解其他编程语言,请尝试查找该语言的打印预览控件,将其设为 dll 并在您的 MFC 应用程序中使用它。

      例如,我为 Delphi 找到了 NicePreview 控件,它对我来说非常有效,漂亮

      【讨论】:

        【解决方案3】:

        如果您设法将输出打印到 RTF 格式的文件并显示在屏幕上,这会解决问题吗?

        【讨论】:

          【解决方案4】:

          MFC 中有一个 CPreviewView 类。也许你可以找到一种方法来实例化它而无需 MDI 结构。

          否则,您可以简单地在屏幕上绘制您在打印机 DC 上绘制的任何内容。请记住,您可能需要将其缩小以降低 dpi。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-11-28
            • 2010-09-16
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多