: .
基于MFC对话框的报表打印和预览功能
第一步:在工程中加入实现打印功能的四个文件 ,
,,
CPrintFrame 和 CPrintView 类是两个个可重用的类,开发者只需要把这两个类 对应的四个文件拷贝到工程文件所在目录中 (,
,, ) ,并将这四个文件加入工程, 并在需要执行打印功能的代码处加入
#include ""
#include ""
第二步:添加三个消息响应函数来执行该功能
ON_MESSAGE(WM_BEGIN_PRINTING,OnBeginPrinting)
ON_MESSAGE(WM_END_PRINTING,OnEndPrinting)
这三个消息响应函数放在
ON_MESSAGE(WM_MY_PRINT,OnMyPrint)
.cpp 文件的 BEGIN_MESSAGE_MAP(CReport
与END_MESSAGE_M之间,如下:
BEGIN_MESSAGE_MAP(CReport
//{{AFX_MSG_MAP(CReportDlg)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
ON_MESSAGE(WM_BEGIN_PRINTING,OnBeginPrinting)
ON_MESSAGE(WM_END_PRINTING,OnEndPrinting)
ON_MESSAGE(WM_MY_PRINT,OnMyPrint)
ON_BN_CLICKED(IDC_BUTTON2, OnButton2)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
其中 OnMyPrint 是跟具体要打印什么内容有关的开发人员要重点完成的代码, 可 以打印表格,图片,数据,只要GDI绘图可以进行的操作在这里都可以完成。由 于打印预览的一部分工作在 CView类里完成,因此在用户程序中只需要相应 WM_MY_PRINT息就可以执行打印预览的功能,而不需要另外编写打印预览代 码。
第三步:
建立一个CPrintFrame的对象,设该对象的指针为pFrame,并将对话框的指针传 给该对象的 m_pCallerDlg ,即 pFrame->m_pCallerDlg = this ;
调用对象的 Create 函数创建框架窗口;例如 pFrame->Create(NULL," 频谱打印 ",WS_OVERLAPPEDWINDOW,CRect(0,0,0,0));
如果要执行打印,则调用 pFrame->m_pView->OnMyPrint();
如果要执行打印预览,则调用: pFrame->m_pView->OnMyPrintP
基于MFC对话框的报表打印和预览功能(推荐文档) 来自淘豆网www.taodocs.com转载请标明出处.