实现我自己的打印预览?

时间:2009-06-23 07:06:39

标签: c++ mfc printing preview

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

我不能使用MFC的打印预览架构,因为我的项目没有使用doc / view架构。我可以自己创建一个打印预览窗口吗? MFC如何处理这个?在屏幕上显示打印机输出时,是否需要进行特殊处理或记住?我读过MFC使用2个DC进行打印预览。如果我想进行自定义打印预览,我是否还需要这样做?

您的意见非常感谢! TIA。

P.S。我使用Visual Studio 6,没有选项可以将其更改为更新版本,就像我无法添加文档/视图支持一样。

4 个答案:

答案 0 :(得分:0)

打印预览不是那么特别。它只是意味着您必须渲染到屏幕(或位图),否则将呈现给打印机DC。这主要意味着使用页面大小,并为prev / next页面提供UI控件。

答案 1 :(得分:0)

我已经调整了这个code,以便将其编译为静态库。它适用于基于对话框的应用程序。
如果您不需要特殊功能,它将对您有效
我不得不通过MFC机制来添加额外的功能,但最后我放弃了它。如果您了解其他编程语言,请尝试使用该语言查找打印预览控件,将其设为dll并从MFC应用程序中使用它。

例如,我找到了Delphi的NicePreview控件,对我来说,它非常有用

答案 2 :(得分:0)

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

答案 3 :(得分:0)

MFC中有一个类CPreviewView。也许你可以找到一种在没有MDI结构的情况下实例化它的方法。

否则,无论您在打印机DC上绘画的是什么,都可以在屏幕上绘画。请记住,您可能需要将其缩小以降低dpi。