电脑故障

位置:IT落伍者 >> 电脑故障 >> 浏览文章

个人考勤软件开发实例


发布日期:2021/7/6
 

个人考勤软件开发实例
作者:YangLanGuang

CAttendanceDlg dlg;

之后立即把这个对象的指针信息存入CWinApp::m_pMainWnd 和附加的m_pMiddle中备用

m_pMainWnd = &dlg; m_pMiddle = &dlg;

在ClassWizard中为主对话框类导入OnCreate()函数在其中创建子框架对象CChildFrame

CChildFrame* pFrame = new CChildFrame; m_pChildFrame = pFrame; pFrame>LoadFrame(IDR_MAINFRAME WS_OVERLAPPEDWINDOW | FWS_ADDTOTITLE NULL//m_pMainWnd NULL);

暂时将其显示状态置为隐藏 m_pChildFrame>ShowWindow(SW_HIDE);

在子框架对象CChildFrame的OnCreate()函数中创建子视类对象CChildView

CCreateContext context; contextm_pNewViewClass = RUNTIME_CLASS(CChildView); contextm_pCurrentFrame = this; contextm_pCurrentDoc = NULL; contextm_pLastView = NULL; m_pView = STATIC_DOWNCAST(CChildView CreateView(&context)); //CreateView(&context); if(m_pView != NULL) { m_pView>ShowWindow(SW_HIDE);//暂时将其显示状态也置为隐藏 SetActiveView(m_pView); }

在主对话框的打印或打印预览处理函数中只要向子框架CChildFrame发送相应的消息即可 对于打印函数为

m_pChildFrame>SendMessage(WM_COMMAND ID_FILE_PRINT);

或对于打印预览函数为

m_pChildFrame>ShowWindow(SW_SHOW);//将子框架CChildFrame显示状态置为显示 m_pChildFrame>SendMessage(WM_COMMAND ID_FILE_PRINT_PREVIEW);//打印预览

在子框架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);

打印预览结束退出之前必须恢复原有的显示状态并将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()函数中的结尾处完成

最后还要为子框架创建一个标识为IDR_MAINFRAME的菜单资源

上一篇:关于如何换肤、子类化的解决方案

下一篇:Windows 中不规则窗体的编程实现