如何完成默认打印

本文介绍 Windows 中 MFC 框架的默认打印过程。

在 MFC 应用程序中,视图类具有一个名为包含 OnDraw 所有绘图代码的成员函数。 OnDraw 将指向 CDC 对象的指针作为参数。 该 CDC 对象表示接收所 OnDraw生成的图像的设备上下文。 当显示文档的窗口收到 WM_PAINT 消息时,框架将调用 OnDraw 并传递屏幕的设备上下文( CPaintDC 对象,具体)。 因此, OnDraw输出将转到屏幕。

在 Windows 编程中,向打印机发送输出与将输出发送到屏幕非常相似。 这是因为 Windows 图形设备接口(GDI)与硬件无关。 只需使用适当的设备上下文即可对屏幕显示或打印使用相同的 GDI 函数。 CDC如果接收的对象OnDraw表示打印机,OnDraw则输出将转到打印机。

这解释了 MFC 应用程序如何执行简单的打印,而无需额外努力。 框架负责显示“打印”对话框并为打印机创建设备上下文。 当用户从“文件”菜单中选择“打印”命令时,视图会将此设备上下文传递给该上下文 OnDraw,这会在打印机上绘制文档。

但是,打印和屏幕显示之间存在一些显著差异。 打印时,必须将文档划分为不同的页面,并一次显示一个页面,而不是在窗口中显示任何部分。 作为一个结果,你必须知道纸张的大小(无论是字母大小、法定大小还是信封)。 你可能希望以不同的方向打印,例如横向或纵向模式。 Microsoft基础类库无法预测应用程序如何处理这些问题,因此它提供了一个协议来添加这些功能。

页文档一文介绍了该协议。

另请参阅

打印