1 / 6
文档名称:

VC++对话框程序打印及打印预览的实现.pdf

格式:pdf   页数:6
下载后只包含 1 个 PDF 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

VC++对话框程序打印及打印预览的实现.pdf

上传人:紫岑旖旎 2012/9/16 文件大小:0 KB

下载得到文件列表

VC++对话框程序打印及打印预览的实现.pdf

文档介绍

文档介绍:踏雪无痕
VC++对话框程序打印及打印预览的实现
分类: C++ 2011-12-24 09:05 425人阅读评论(1) 收藏举报
MFC文档/视图的应用程序,向导给了打印及打印预览的标准支持。使这类应用程序打印及打印预览工作得
以简化。另一类对话框程序却没有相应支持,从MFC打印及打印预览的标准支持入手,可以在对话框程序
中,增加三个类以支持打印及打印预览,本文介绍了这三个类的实现。
打印及打印预览是编写应用程序经常要解决的问题,为了理解VC++对话框程序的打印及打印预览实
现,要先掌握基于文档/视图的应用程序打印及打印预览的基本原理。所以分为两部分介绍。
一、基于文档/视图的应用程序的打印及打印预览原理
VC++基于文档/视图的应用程序中用MFC应用程序向导在步骤4对话框中选中Print and Print Preview
选项,可以包含基本打印及打印预览的支持,应用程序文件菜单中会生成两个菜单项分别是打印(标识符
ID_FILE_PRINT)和打印预览(标识符:ID_FILE_PRINT_PREVIEW),展开程序源代码,可以发现,是Cview
类提供标准打印和打印预览菜单命令的消息处理函数:
设应用程序视图类为CMyView,,其消息映象部分有如下两行:
MAND(ID_FILE_PRINT,CView::OnFilePrint)
MAND(ID_FILE_PRINT_PREVIEW,CView::OnFilePrintPreview)
CView::OnFilePrint 和CView::OnFilePrintPreview函数都进行打印操作,但View::OnFilePrint将实际发
送到打印机,而CView::OnFilePrintPreview则将输出发送到程序窗口上方显示的预览窗口显示一个或两个
打印页面的复制外观。利用上面加入的缺省打印支持,只能打印或预览图形的一个打印页面,一个页中放
不下的部分则放弃,为了加强程序,使它打印整个图形,一页中放不下的部分放在另一页,可以通过覆盖
几个打印期间调用的虚拟函数来完成。下图说明了整个打印和打印预览的过程,显示了每个虚拟函数在程
序中哪个部分调用。注意每打印一个页面就要经历图中的一个循环。
下表列出了虚拟函数并介绍了各自完成的任务,由于MFC打印或打印预览文档时都调用虚拟函数,所
以定义的覆盖函数既影响打印也影响打印预览。
二、对话框程序打印及打印预览的实现
以上是基于文档/视图的应用程序的打印原理,可以根据需要从CView类派生出视图类覆盖打印及打印
预览过程中的CView类的虚拟函数来定制文档/视图应用程序的打印及打印预览。在实际中,有很多基于对
话框的应用程序,也需要提供打印及打印预览。但向导没有给基于对话框应用程序的基本支持。有了以上
知识,可以构造出无文档的视图类,具体的实现时,增加三个类,用以支持打印及打印预览。以下用一具
体实例说明。
1、函数名() 覆盖函数可能完成的任务CView::OnPreparePrinting() 调用CprintInfo成员函数(如
CprintInfo::SetMaxPage设置文档长度)或设置CprintInfo数据成员以影响Prin

最近更新