分配GDI资源

本文说明如何分配和释放对打印要求的 windows (GDI) 图形设备接口对象。

备注

GDI+ 由 Windows XP 附带并且可可以作为 Windows NT 4.0 SP6, Windows 2000、 Windows 98 和 Windows ME。若要下载最新的可再发行组件,请 https://www.microsoft.com/msdownload/platformsdk/sdkupdate/psdkredist.htm参见。有关更多信息,请参见 MSDN 的 GDI+ SDK 文档: https://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdicpp/GDIPlus/GDIPlus.asp.

假定您需要使用某些字体、钢笔,或其他 GDI 对象进行打印,,但对于屏幕显示。 由于所需的内存,为 none 结果指派这些对象,当应用程序启动时。 当应用程序不打印文档时,该内存可能会在其他目的需要。 发布它们,打印时启动时最好,然后删除这些对象,打印时结束时。

若要将这些 GDI 对象,请重写 OnBeginPrinting 成员函数。 此功能由于以下两个原因是非常适合于此目的:框架在每个打印作业的一次调用此函数,而不同, OnPreparePrinting,此功能可以访问表示打印机设备驱动程序的 CDC 对象的。 可以存储这些对象用于打印作业过程中通过定义 (例如指向 GDI 对象的成员变量在您的视图类 (, CFont * 成员,等等)。

若要使用您创建的 GDI 对象,选择到 OnPrint 成员函数的打印机上下文。 如果需要文档的不同页的不同 GDI 对象,可以检查 CPrintInfo 结构的 m_nCurPage 成员并相应地选择 GDI 对象。 如果需要多个连续页的一个 GDI 对象,窗口要求您选择到设备上下文 OnPrint 每次调用。

若要释放这些 GDI 对象,请重写 OnEndPrinting 成员函数。 ,在应用程序返回到其他任务之前,框架调用此函数在每个打印作业的末尾,从而能够释放 GDI 打印特定对象。

请参见

参考

打印

默认打印如何完成