文档的打印
1.
MFC
打印体系结构
MFC
的打印工作大致按如下步骤进行:
[1]
显示
Print
对话框。
[2]
创建一个与当前打印机设置相匹配的设备上下文(
CDC
)对象。
[3]
设置要打印的页数。
[4]
调用
CDC::StartDoc
开始打印。
[5]
调用
CDC::StartPage
开始打印一页。
[6]
调用视图的
OnDraw
方法打印输出一页。
[7]
调用
CDC::EndPage
结束一页的打印。
[8]
循环输出全部内容。
[9]
调用
CDC::EndDoc
结束打印。
[10]
视图做打印的清理工作。
框架的打印文档功能是从
OnPreparePrinting(CprintInfo * pInfo)
开始的,在缺省的情况下,它只是简单的调用视图的
DoPreparePrinting
函数。
DoPreparePrinting
显示
Print
对话框,并创建与打印机相匹配的设备上下文。如果要改变打印机的初始设置,则可以在这里改。
MFC
提供了视图类的几个覆盖的函数,如下;这些可覆盖的函数允许用户在打印过程中进行干预,可在这些函数中添加所有的打印代码;
1.
OnPreparePrinting MFC
在打印作业开始调用该函数。可以用它在打印对话框显示之前把内容插入到对话框中。缺省时,
OnPreparePrinting
调用
DoPreparePrinting
来完成对话框的显示工作,覆盖
OnPreparePrinting
主要用于设置打印页数,定制
CPrintInfo
对象来提供打印作业的相关信息,此时打印设备描述表尚未创建。
2
.
OnBeginPrinting MFC
在打印开始之前调用该函数,它用于创建设备描述表,指定打印字体和其他资源。
3.
OnPrepareDc MFC
调用这个函数可同时用于打印和显示,对于打印来说,它在每一个页面打印之前调用。
VisDraw
覆盖它来计算下一个打印页面所需要绘图板空间,打印出所绘图形的左边为第一页,右边为第二页,一个文本文档可以用来标志需要打印的下一页的内容。
4.
OnPrint
MFC
调用他来打印(或预览)一个页面,通常可以在
OnPrint
中调用
OnDraw
打印一个页面,可以用来覆盖页眉和页面中其他元素。
5.
OnEndPrinting MFC
在打印结束之后调用该函数,可以覆盖该函数来销毁在
OnBegingPrinting
中分配的字体或其他资源。