7.MFC单文档视图构架程序

上传人:ni****g 文档编号:512783588 上传时间:2023-02-18 格式:DOC 页数:4 大小:99.50KB
返回 下载 相关 举报
7.MFC单文档视图构架程序_第1页
第1页 / 共4页
7.MFC单文档视图构架程序_第2页
第2页 / 共4页
7.MFC单文档视图构架程序_第3页
第3页 / 共4页
7.MFC单文档视图构架程序_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《7.MFC单文档视图构架程序》由会员分享,可在线阅读,更多相关《7.MFC单文档视图构架程序(4页珍藏版)》请在金锄头文库上搜索。

1、7.MFC单文档视图构架程序、单文档视图构架程序相关问题只能管理一个文档(只有一个文档类对象)相.关类CCFCView/CC文档模板类C当文档模板类CM文档管理类关.系图文档管理类对象地址.F函数的执行过程(1通过应用程序类对象的成员2)通过文档管理类对象的成员3)通过单文档模板类对象获取4)通过单文档模板类对象获取保存单文档模板类地址的链表C()文档类对象地址文档类静态变量地址,框架类静态变量地址,MC视图类静态变量地址,MCM获取文档管理类对象地址获取单文档模板类对象地址C(文档类静态变量),并用这个静态变量调用CFC框架类静态变量),并用这个静态变量调用CMCCMLA|S-S-(CmM_

2、ypFrFraammeeWCnA|S-S-(CmM_ypVViieewwC)(函数创建文档类对象函数创建框架类对象5)利用框架类对象,调用F函数,创建框架窗口(6在处理主框架窗口的MC消息时,动态创建视图类对象,并创建视图窗口消息时,将视图类对象和文档类对象建立绑定关系(7)在处理视图窗口的MC相关代码:田sCsMyCATE(CMyDoc)CLARE_DYNCREMPLEMDYNCRE(CMCsCsMyCCLANCRECMyView)MPLEMDYNCRE(CMCsCsMyFraCFCLANCRECMyFrameWMPLEMDYNCRE(CMFrameWnd,CFsCsMyCpublic:vi

3、rtualBOOLInitInstance();CMyWinApptheApp;BOOLCMyWinApp:InitInstance()CSingleDocTemplate*pTemplaten=ewCSingleDocTemplate(IDR_MENU1,RUNTIME_CLASS(CMyDoc),RUNTIME_CLASS(CMyFrameWnd),RUNTIME_CLASS(CMyView);AddDocTemplate(pTemplate);OnFileNew();m_pMainWnd-ShowWindow(SW_SHOW);m_pMainWnd-UpdateWindow();retu

4、rnTRUE;ViewCode运行结果:CSingleDocTemplate:CSingleDocTemplate(nIDResource,pDocClass,pFrameClass,pViewClass)/父类构造函数CDocTemplate:CDocTemplate(nIDResource,pDocClass,pFrameClass,pViewClass)m_pDocClass=pDocClass;m_pFrameClass=pFrameClass;m_pViewClass=pViewClass;m_pOnlyDoc=NULL;/CWinApp:AddDocTemplate(pTempla

5、te)/this为&theAppif(m_pDocManager=NULL)m_pDocManager=newCDocManager;m_pDocManager-AddDocTemplate(pTemplate)/this为文档管理类对象地址if(pTemplate=NULL).elsepTemplate-LoadTemplate();m_templateList.AddTail(pTemplate);/OnFileNew()/this为&theAppm_pDocManager-OnFileNew()/this为文档管理类对象地址拿到链表头结点,因为链表只有一个结点,即尾节点,单文档模板类对象

6、地址CDocTemplate*pTemplate=(CDocTemplate*)m_templateList.GetHead();pTemplate-OpenDocumentFile(NULL)/this为单文档模板类地址returnOpenDocumentFile(lpszPathName,TRUE,bMakeVisible)/this为单文档模板类地址CDocument*pDocument=NULL;CFrameWnd*pFrame=NULL;pDocument=CreateNewDocument()/this为单文档模板类地址动态创建CMyDoc对象并保存地址CDocument*pDoc

7、=(CDocument*)m_pDocClass-CreateObject();/AddDocument(pDoc)/this为单文档模板类地址CDocTemplate:AddDocument(pDoc);m_pOnlyDoc=pDoc;/returnpDoc;pFrame=CreateNewFrame(pDocument,NULL)thi为当文档模板类对象地址CCreateContextcontext;/context.m_pCurrentFrame=NULL;context.m_pCurrentDoc=pDocument;文档类对象地址context.m_pNewViewClass=m_pViewClass;/RUNTIME_CLASS(CMyView)context.m_pNewDocTemplate=this;/动态创建CMyFrameWnd对象并保存地址CFrameWnd*pFrame=(CFrameWnd*)m_pFrameClass-CreateObject();/创建框架窗口pFrame-LoadFrame(,&context);returnpFrame;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号