正在加载图片...
第13单元文档读写与打印 virtual void On PrepareDC( CDC* pDC, CPrintInfo" pInfo= NULL 其中参数pDC为指向设备环境的指针, pInfo为指向 CPrintInfo类对象的指针。 CPrintInfo 类用来存放与打印有关的信息,其数据成员 m n Page为当前打印页的号码; m rectPage 存放着当前打印纸上的可打印区域。常用成员函数有 1.设置从第几页开始打印。其原型为 void SetMinPage( UINT nMinPage ) 其中参数 nMinPage为开始打印的页号。如果从文档的第1页开始打印,则 n MinTage的值 应为 2.设置打印到第几页结束。其原型为: yoid Set MaxPage( UINT nMaxPage 其中参数 n Max Page为最后一个打印页的页码,其缺省值为1 3.取关于打印页码的设置。原型为 UINT GetMin Page( )const UINT Get MaxPage()const 如果 On Draw()主要用于显示,打印内容简单(例如只有一页),则 On PrepareD() 的参数 pInfo可取空值NULL。 应用程序框架在调用 On Draw()之前会调用 On PrepareD()函数。在 On Draw() 之外使用设备环境时(如在消息响应函数中),应首先声明一个 CClientDC对象,然后调用 OnPrepareDC()函数 自学内容 133自定义类的序列化 前面已经介绍过,如果文档类的数据是 CObject的派生类的对象,则文档类的序列化成 员函数 Serialize()的编写非常简单。那么,对于程序中的自定义类,能否让其支持序列化 呢?回答是肯定的 要让程序员自定义的类支持序列化,一般要做如下6步工作: 1.从 CObject类派生出自定义类; 2.重载自定义类的 Serialize()成员函数,加入必要的代码,用以保存自定义类对象 的数据成员到 CArchive对象以及从 CArchive对象载入自定义类对象的数据成员状态 3.在自定义类的声明中,加入 DECLARE SERIAL()宏,这是序列化对象所必需的 4.为自定义类定义一个不带参数的构造函数 5.为自定义类重载赋值运算符“=” 6.在自定义类的源代码文件中加入 IMPLEMENT SERIAL()宏第 13 单元 文档读写与打印 - 261 - virtual void OnPrepareDC( CDC* pDC, CPrintInfo* pInfo = NULL ); 其中参数 pDC 为指向设备环境的指针,pInfo 为指向 CPrintInfo 类对象的指针。CPrintInfo 类用来存放与打印有关的信息,其数据成员 m_nCurPage 为当前打印页的号码;m_rectPage 存放着当前打印纸上的可打印区域。常用成员函数有: 1. 设置从第几页开始打印。其原型为: void SetMinPage( UINT nMinPage ); 其中参数 nMinPage 为开始打印的页号。如果从文档的第 1 页开始打印,则 nMinPage 的值 应为 1。 2.设置打印到第几页结束。其原型为: void SetMaxPage( UINT nMaxPage ); 其中参数 nMaxPage 为最后一个打印页的页码,其缺省值为 1。 3.取关于打印页码的设置。原型为 UINT GetMinPage( ) const; UINT GetMaxPage( ) const; 如果 OnDraw()主要用于显示,打印内容简单(例如只有一页),则 OnPrepareDC() 的参数 pInfo 可取空值 NULL。 应用程序框架在调用 OnDraw()之前会调用 OnPrepareDC()函数。在 OnDraw() 之外使用设备环境时(如在消息响应函数中),应首先声明一个 CClientDC 对象,然后调用 OnPrepareDC()函数。 自学内容 13.3 自定义类的序列化 前面已经介绍过,如果文档类的数据是 CObject 的派生类的对象,则文档类的序列化成 员函数 Serialize()的编写非常简单。那么,对于程序中的自定义类,能否让其支持序列化 呢?回答是肯定的。 要让程序员自定义的类支持序列化,一般要做如下 6 步工作: 1.从 CObject 类派生出自定义类; 2.重载自定义类的 Serialize()成员函数,加入必要的代码,用以保存自定义类对象 的数据成员到 CArchive 对象以及从 CArchive 对象载入自定义类对象的数据成员状态; 3.在自定义类的声明中,加入 DECLARE_SERIAL()宏,这是序列化对象所必需的; 4.为自定义类定义一个不带参数的构造函数; 5.为自定义类重载赋值运算符“=”; 6.在自定义类的源代码文件中加入 IMPLEMENT_SERIAL()宏
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有