使用M FC 实现打印功能 如果程序不是文档视图结构的,我们要使用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 消息即可: pFrame->m_pCallerDlg->SendMessage(WM_MY_PRINT,(WPARAM) pDC, (LPARAM) pInfo); 使打印的具体处理又传回到对话框中,使开发人员根据具体的需要写WM_MY_PRINT 的处理函数就可以实现打印,而 CView::OnPrint(CDC* pDC, CPrintInfo* pInfo)的参数也从 WM_MY_PRINT 的消息参数传出来,在用户的对话框程序中,需