本文说明如何分配和解除分配为打印需的 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 * 成员,成员变量 (,等)。
若要使用您创建的对象,选择 OnPrint GDI 到成员函数的上下文设备打印机。 如果您需要为不同的 GDI 提供文档的不同页面对象,您可以查看 CPrintInfo 结构的 m_nCurPage 成员及相应 GDI 选择对象。 如果需要多运行的页的 GDI 对象,窗口要求您选择到设备上下文 OnPrint 都调用。
若要释放这些 GDI 对象,请重写成员函数。OnEndPrinting 在应用程序返回到其他任务之前,框架调用此函数在每个打印作业的结尾,从而能够释放 GDI 打印的特定对象。