WEB开发网
开发学院软件开发VC 使用 MFC 编写打印程序 阅读

使用 MFC 编写打印程序

 2006-07-19 11:31:01 来源:WEB开发网   
核心提示: 关于打印预览只需要将自己的执行打印预览功能的命令ID和CView::OnFilePrintPreview关联起来就行了,具体方法是在用户的视图类的MessageMap中加入:ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPrevie

关于打印预览只需要将自己的执行打印预览功能的命令ID和CView::OnFilePrintPreview关联起来就行了,具体方法是在用户的视图类的MessageMap中加入:

ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview);

其中ID_FILE_PRINT_PREVIEW是默认的ID,开发人员也可以使用自己的ID。其实只要重载了OnPrint函数,在打印和打印预览中就可以重用该函数了。到现在为止,相信读者已经对利用MFC的文档视图结构来实现一个包含打印和打印预览功能的程序有了一个总体的认识了,本文还针对该方法给出了一个示例代码,代码来自Jeff Prosise 的《MFC windows程序设计》,见参考文献[1]。

2、没有文档视图结构的程序中利用MFC进行打印程序的编写

如果程序不是文档视图结构的,我们要使用MFC来进行打印,则可以通过建立一个虚拟的文档视图结构来进行打印,其实MFC的打印的强大功能是在CView里提供的,而CView类的对象是一个子窗口,它必须是某一个框架窗口的子窗口,而在对话框程序中,我们只需要打印,而不需要显示这个框架窗口和视图。我们以按下按钮"打印"来执行打印程序,例如按钮为ID为IDC_PNT,消息相应函数为OnPnt(),即:

ON_BN_CLICKED(IDC_PNT, OnPnt);

需要在OnPnt中建立一个框架窗口,同时使某个CView类的对象为该窗口的子窗口。因此笔者建立了两个类,一个为框架窗口类CPrintFrame,另一个为CPrintView,具体的内容见示例代码。在新建一个用于打印的虚拟框架窗口时,需要将执行打印的对话框的指针传给框架窗口,这以便在对话框来响应WM_BEGIN_PRINTING和WM_END_PRINTING消息,使对话框可以完成打印的初始化和释放操作。在执行一个打印任务时,将打印的流程交给CView来进行,而这个CView是虚拟的,只是用来完成打印一些操作,其它内容则完全不负责处理,而当要执行CView::OnPrint时,则又将处理的具体内容传回到对话框,而对话框则只需要响应WM_MY_PRINT消息即可:

上一页  1 2 3 4 5  下一页

Tags:使用 MFC 编写

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接