个人考勤软件开发实例
2010-06-29 20:42:44 来源:WEB开发网4.在主对话框的打印或打印预览处理函数中只要向子框架CChildFrame发送相应的消息即可: 对于打印函数为:
m_pChildFrame->SendMessage(WM_COMMAND, ID_FILE_PRINT);
或对于打印预览函数为:
m_pChildFrame->ShowWindow(SW_SHOW);//将子框架CChildFrame显示状态置为显示
m_pChildFrame->SendMessage(WM_COMMAND, ID_FILE_PRINT_PREVIEW);//打印预览
5.在子框架CChildFrame的打印预览处理函数中需要将CWinApp::m_pMainWnd暂时替换为子框架CChildFrame的指针,并把子视类对象的显示状态激活后调用子视类对象的打印预览处理函数
CAttendanceApp* app=(CAttendanceApp*)AfxGetApp();
app->m_pMainWnd = this;//应用程序主窗口临时替换为子框架窗口
m_pView->ShowWindow(SW_SHOW);
SetActiveView(m_pView);
m_pView->OnFilePrintPreview(this);
6.打印预览结束退出之前必须恢复原有的显示状态,并将CWinApp::m_pMainWnd恢复为主对话框:
pParent->ShowWindow(SW_HIDE);//将子框架CChildFrame显示状态重新置为隐藏
pParent->UpdateWindow();
CAttendanceApp* app=(CAttendanceApp*)AfxGetApp();
app->m_pMainWnd = app->m_pMiddle;//应用程序主窗口恢复为主对话框窗口
app->m_pMiddle->UpdateWindow();
这些后处理工作放在CWrapperView::OnEndPrintPreview(..)函数中的结尾处完成。
7.最后还要为子框架创建一个标识为IDR_MAINFRAME的菜单资源,其中只需要打印和打印预览两项即可。
8.打印的内容和页面布局都放在CChildView::OnDraw(CDC* pDC)函数中完成。
9.函数CAttendanceApp::SetPrntOrientation()是用来强制设定打印方向为纵向的,在打印或打印预览中先要调用它。如果要设为横向则只要把其中的 DMORIENT_PORTRAIT 替换为 DMORIENT_LANDSCAPE 即可 阅读以上说明请参照程序的源代码。
本文配套源码
更多精彩
赞助商链接