




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于MDI和CFormView框架的多视图开发实例1. 打开VC+6.0 利用向导建立一个MFC AppWizard (exe)项目,取名MDIx.下一个页面选择Multiple Documents(MDI),向导最后一个页面的View类的Base Class选CformView类2. Resource管理器中选择向导默认生成的Dialog:IDD_MDIX_FORM,Ctrl+C 然后Ctrl+V复制生成一个新得Dialog,ID设为IDD_SUB_FORM.3. Ctrl+W打开Class Wizard,为IDD_SUB_FORM 创建一个类CsubForm,Base Class选CFormView.(向导默认为IDD_MDIX_FORM生成了CMDIxView类,基类也是CFormView)4. 打开Resource管理器,打开Menu选择IDR_MAINFRAME,添加一个Pop-up子菜单,名字设为“窗口”,菜单项为IDM_WINDOW_SUB,名称为“Main窗口”,IDM_WINDOW_MAIN,名称为“Main窗口”5. 选择IDM_WINDOW_SUB,Ctrl+W打开Class Wizard.在CMainFrame类中为IDM_WINDOW_SUB和IDM_WINDOW_MAIN分别添加COMMAND和UPDATE_COMMAND_UI命令的消息响应函数:OnWindowSub(),OnUpdateWindowSub(CCmdUI* pCmdUI),OnWindowMain(),OnUpdateWindowMain(CCmdUI* pCmdUI)。6. 在CmainFrame类中添加两个public指针变量:public:CChildFrame * m_subWindow;CChildFrame * m_mainWindow;7. 在CmainFrame的构造函数中把m_subWindow和m_mainWindow初始化为NULL;m_subWindow=NULL;m_mainWindow=NULL;8. 在MainFrm.h中加入#include ChildFrm.h#include MDIxDoc.h#include MDIxView.h#include SubForm.h9. 在OnWindowSub()中加入:if (m_subWindow!= NULL & m_subWindow -GetSafeHwnd() != NULL)m_subWindow -MDIActivate();return;elseCCreateContext context;context.m_pNewViewClass = RUNTIME_CLASS(CSubForm);m_subWindow = new CChildFrame();m_subWindow -LoadFrame(IDR_MAINFRAME,WS_MAXIMIZE|WS_OVERLAPPEDWINDOW,this,&context);m_subWindow -ShowWindow(SW_SHOWMAXIMIZED);/设置主窗口标题m_subWindow -GetParentFrame()-SetWindowText(“sub窗口”);m_subWindow -InitialUpdateFrame(NULL,true);return;10. 在OnWindowMain ()中加入:i / TODO: Add your command handler code hereif(m_mainWindow!=NULL)m_mainWindow-MDIActivate();return;elseCCreateContext context;context.m_pNewViewClass=RUNTIME_CLASS(CMDIxView);m_mainWindow=new CChildFrame;m_mainWindow-LoadFrame(IDR_MAINFRAME,WS_OVERLAPPEDWINDOW|WS_MAXIMIZE,this,&context);m_mainWindow-ShowWindow(SW_SHOWMAXIMIZED);m_mainWindow-GetParentFrame()-SetWindowText(Main Window);m_mainWindow-InitialUpdateFrame(NULL,true);11. 在OnUpdateWindowSub(CCmdUI* pCmdUI)中加入:if(GetActiveFrame()!=this)if(GetActiveFrame()-GetActiveView()if(GetActiveFrame()-GetActiveView()-IsKindOf(RUNTIME_CLASS(CSubForm)pCmdUI-Enable(FALSE);elsepCmdUI-Enable();12. 在OnUpdateWindowMain(CCmdUI* pCmdUI)中加入:if(GetActiveFrame()!=this)if(GetActiveFrame()-GetActiveView()if(GetActiveFrame()-GetActiveView()-IsKindOf(RUNTIME_CLASS(CMDIxView)pCmdUI-Enable(FALSE);elsepCmdUI-Enable();13. 在ChildFrm.h中添加#include MainFrm.h14. 在CchildFrame类中增加WM_CLOSE消息响应函数:void CChildFrame:OnClose()并添加代码:if(this=(CMainFrame *)AfxGetMainWnd()-m_subWindow)(CMainFrame *)AfxGetMainWnd()-m_subWindow =NULL;if(this=(CMainFrame *)AfxGetMainWnd()-m_mainWindow)(CMainFrame *)AfxGetMainWnd()-m_mainWindow =NULL;/子窗口关闭后,销毁指向本子窗口的指针15. 在CChildFrame:PreCreateWindow(CREATESTRUCT& cs)中添加/窗口的创建样式cs.style = WS_CHILD|WS_VISIBLE|WS_OVERLAPPED|WS_CAPTION|WS_SYSMENU|/FWS_ADDTOTITLE|/WS_THICKFRAME|/WS_MINIMIZEBOX|WS_MAXIMIZEBOX|WS_MAXIMIZE;16. 在BOOL CMDIxApp:InitInstance()中修改:pMainFrame-ShowWindow(SW_SHOWMAXIMIZED);16. 可以在主程序BOOL CMDIxApp:InitInstance()中删除以下代码,以便程序初始化时不打开任何视图。CMultiDocTemplate* pDocTemplate;pDocTemplate = new CMultiDocTemplate
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025广东省中医院贵州医院第十三届贵州人才博览会引才模拟试卷有完整答案详解
- 2025海南澄迈县就业局招聘见习生1人模拟试卷及答案详解(夺冠系列)
- 2025广西防城港市文旅集团有限公司第2期公开招聘6人考前自测高频考点模拟试题及1套完整答案详解
- 2025春季中国太平社会招聘模拟试卷有答案详解
- 2025中国联合网络通信有限公司六盘水市分公司员工招募14人笔试题库历年考点版附带答案详解
- 2025中国建筑一局(集团)有限公司机械管理员招聘2人笔试题库历年考点版附带答案详解
- 福建安全生产培训费用课件
- 2025年农业用地流转协议合同
- 能源化工行业碳中和路径研究
- 社保代缴协议书
- 回收垃圾培训课件
- 2025-2030中国钩针系列行业市场发展趋势与前景展望战略研究报告
- 司法确认调解协议(2025年版)
- 医疗器械直调管理制度
- (高清版)DBJ33∕T 1294-2023 建设工程造价指标采集分析标准
- 2024年酒吧演艺公司与艺人合同
- 八年级英语上学期 选词填空解题方法及专项训练(解析版)
- 《永遇乐-京口北固亭怀古》课件
- 《幼儿舞蹈基础》 课件 项目八 蒙古族舞蹈
- 穴位按摩法操作评分标准
- 城乡供水一体化项目(一期)-给水工程施工图设计说明
评论
0/150
提交评论