vc 打印函数使用
2011-04-21 10:08
211 查看
用MFC编制Windows打印程序
文档打印是许多Windows程序所必需的,在DOS下进行图形方面的打印是件比较麻烦的事,幸好Windows提供了统一接口,将程序员与具体的硬件系统隔离开来。同时Visual C++ MFC(微软基础类库)则将Windows的API函数以类的形式封装了很多细节,使得许多烦琐的工作变得轻松起来。
一般来说,用Visual C++编制需要打印的程序时,在用AppWizard生成工程文件时就加入打印和打印预览选项(该选项在AppWizard的第四步)。若用手工加入,则稍微麻烦些。
MFC对于打印的支持是在视类CView中实现的,该类中有如下几个成员函数是与打印或打印预览有关的:
BOOL OnPreparePrinting(CPrintInfopInfo)
void OnBeginPrinting(CDCpDC, CPrintInfopInfo)
void OnPrepareDC(CDCpDC, CPrintInfopInfo)
void OnPrint(CDCpDC, CPrintInfopInfo)
void OnEndPrinting(CDCpDC, CPrintInfopInfo)
其中,pDC是打印或显示的设备场指针,pInfo是打印过程信息指针。pInfo包含许多有用的信息,如打印的总页数、当前打印页的页码、是打印还是打印预览、是否继续打印等,具体参数内容和意义可以参考MFC联机手册。
以上几个函数都是虚函数,可以重载。若在用AppWizard生成工程文件时选择了打印和打印预览选项,则函数OnPreparePrinting、OnBeginPrinting、OnEndPrinting自动地被AppWizard插入到你的视类中加以重载。另外两个函数则可以手工加入,如果使用的是Visual C++ 4.0以上版本,可以通过ClassWizard加入到视类中。
这几个函数在用户选择打印命令时由应用框架自动调用,用户程序不用显式调用。下面讲述这几个函数在打印过程中的调用顺序及其意义。
1.OnPreparePrinting
OnPreparePrinting函数最先被调用,用来初始化打印机等。比如,若没有安装打印机,则该函数将提示用户安装打印机。用户程序可以向其中加入别的初始化代码,比如,计算打印你的文档所需要的总页数,然后调用视类中的打印机初始化函数BOOL DoPreparePrinting(CPrintInfopInfo)即可。而用AppWizard生成的代码中,OnPreparePrinting函数将只是调用函数DoPreparePrinting,并传递参数。
2.OnBeingPrinting
OnBeingPrinting函数是开始打印文档前调用的函数,用户可以在其中加入另一些对于打印过程的初始化代码,比如分配打印过程中将要使用的“笔”(CPen)、“刷子”(CBrush)等,默认的代码中该函数将直接返回。
3.OnEndPrinting
OnEndPrinting函数是与OnBeginPrinting函数相对应的函数,它在打印完成后由应用框架调用,用于释放在OnBeginPrinting中分配的“对象”,如“笔”、“刷子”等,其默认的代码中该函数将直接返回。
4.OnPrepareDC
OnPrepareDC函数用于在打印前准备打印设备场,如窗口大小、原点,视图大小、原点等。同时该函数在视类显示文档内容时也被调用,默认的代码中该函数调用基类中的OnPrepareDC函数。
5.OnPrint
OnPrint函数则是具体的打印过程,它利用前面准备好的设备场进行打印。
这几个函数中,OnPreparePrinting、OnBeginPrinting、OnEndPrinting函数在一次打印过程中将只被调用一次,不管这一次打印内容有多少页,而OnPrepareDC、OnPrint函数则每打印一页都将被调用一次,这种调用次序对于打印是很有用的。
文档打印是许多Windows程序所必需的,在DOS下进行图形方面的打印是件比较麻烦的事,幸好Windows提供了统一接口,将程序员与具体的硬件系统隔离开来。同时Visual C++ MFC(微软基础类库)则将Windows的API函数以类的形式封装了很多细节,使得许多烦琐的工作变得轻松起来。
一般来说,用Visual C++编制需要打印的程序时,在用AppWizard生成工程文件时就加入打印和打印预览选项(该选项在AppWizard的第四步)。若用手工加入,则稍微麻烦些。
MFC对于打印的支持是在视类CView中实现的,该类中有如下几个成员函数是与打印或打印预览有关的:
BOOL OnPreparePrinting(CPrintInfopInfo)
void OnBeginPrinting(CDCpDC, CPrintInfopInfo)
void OnPrepareDC(CDCpDC, CPrintInfopInfo)
void OnPrint(CDCpDC, CPrintInfopInfo)
void OnEndPrinting(CDCpDC, CPrintInfopInfo)
其中,pDC是打印或显示的设备场指针,pInfo是打印过程信息指针。pInfo包含许多有用的信息,如打印的总页数、当前打印页的页码、是打印还是打印预览、是否继续打印等,具体参数内容和意义可以参考MFC联机手册。
以上几个函数都是虚函数,可以重载。若在用AppWizard生成工程文件时选择了打印和打印预览选项,则函数OnPreparePrinting、OnBeginPrinting、OnEndPrinting自动地被AppWizard插入到你的视类中加以重载。另外两个函数则可以手工加入,如果使用的是Visual C++ 4.0以上版本,可以通过ClassWizard加入到视类中。
这几个函数在用户选择打印命令时由应用框架自动调用,用户程序不用显式调用。下面讲述这几个函数在打印过程中的调用顺序及其意义。
1.OnPreparePrinting
OnPreparePrinting函数最先被调用,用来初始化打印机等。比如,若没有安装打印机,则该函数将提示用户安装打印机。用户程序可以向其中加入别的初始化代码,比如,计算打印你的文档所需要的总页数,然后调用视类中的打印机初始化函数BOOL DoPreparePrinting(CPrintInfopInfo)即可。而用AppWizard生成的代码中,OnPreparePrinting函数将只是调用函数DoPreparePrinting,并传递参数。
2.OnBeingPrinting
OnBeingPrinting函数是开始打印文档前调用的函数,用户可以在其中加入另一些对于打印过程的初始化代码,比如分配打印过程中将要使用的“笔”(CPen)、“刷子”(CBrush)等,默认的代码中该函数将直接返回。
3.OnEndPrinting
OnEndPrinting函数是与OnBeginPrinting函数相对应的函数,它在打印完成后由应用框架调用,用于释放在OnBeginPrinting中分配的“对象”,如“笔”、“刷子”等,其默认的代码中该函数将直接返回。
4.OnPrepareDC
OnPrepareDC函数用于在打印前准备打印设备场,如窗口大小、原点,视图大小、原点等。同时该函数在视类显示文档内容时也被调用,默认的代码中该函数调用基类中的OnPrepareDC函数。
5.OnPrint
OnPrint函数则是具体的打印过程,它利用前面准备好的设备场进行打印。
这几个函数中,OnPreparePrinting、OnBeginPrinting、OnEndPrinting函数在一次打印过程中将只被调用一次,不管这一次打印内容有多少页,而OnPrepareDC、OnPrint函数则每打印一页都将被调用一次,这种调用次序对于打印是很有用的。
相关文章推荐
- c语言循环打印问题之A-F及VC6++断点开发工具的使用
- 在VC++中使用API直接打印
- VC的MFC中重绘函数的使用总结(整理)
- tc2.0环境下的C语言研究-简单使用寄存器并打印函数的偏移地址
- 【原创】Masm32中使用VC运行时函数(msvcrt.inc)
- VC++中经常使用的函数
- VC++ CopyFile函数使用方法
- Linux下使用函数打印程序堆栈错误的方法
- vc中怎么使用SendMessage自定义消息函数
- 使用Backtrace函数打印调用栈 - Debug居家必备
- VC++ CopyFile函数使用方法
- C++ vc中怎么使用SendMessage自定义消息函数
- vc中怎么使用SendMessage自定义消息函数
- VC下使用CFile 的OPEN函数路径问题
- VC的MFC中重绘函数的使用总结(整理)
- 在VC中使用安全版字符串操作函数
- VC中UpdateData()函数的使用
- vc MFC使用OPenCV常用函数搜集
- 如何使用SendMessage自定义消息函数(VC实例)
- VC++ 的类中使用函数指针的小例子,通过函数指针调用不同的函数