MFC文档视图(一)

     MFC的Document/View结构能够将管理数据的程序代码负责数据显示的程序代码分离出来。主要包括这样几个类:CDocManager,CDocTemplate,CDocument,CView,CFrameWnd。在介绍之前源码如下:

CDocManager类的部分定义

CDocTemplate类的部分定义

CSingleDocTemplate /CMultiDocTemplate 类的部分定义

CDocument类的部分定义

CView类的部分定义

CFrameWnd类的部分定义

 

App/Frame/View/CDoucument的关系如图:

下面是文字整理:

1.CWinApp拥有一个对象指针:CDocManager* m_pDocManager.

2.CDocManager拥有一个指针链表CPtrList m_templateList,用来维护一系列的Document Template。一个程序若支持两“种”文件类型,就应该有两份Document Template,应用程序应该在CMyWinApp::Instance中以AddDocTemplate将这些Document Templates加入到CDocManager所维护的链表之中。

3.CDocTemplate拥有三个成员变量,分别是Document,View,Frame,的CRuntimeClass的指针,另有一个成员变量m_nIDResoure,用来表示Document显示时应该采用的UI对象,这四份数据应该在CMyWinApp::InitInstance函数构造CDocTemplate时指定,成为构成函数的参数。当使用者欲打开一份文件时(通常接着【FILE/OPEN】或【FILE/NEW】),CDocTemplate可以借着CRuntimeClass指针动态创建响应的对象。

4.CDocument有一个成员变量CDocTemplate* m_pDocTemplate,回指DocTemplate;另一个成员变量CPtrList viewList,表示它可以同时维护一些列的Views.

5.CFrameWnd有一个成员变量CView* m_pViewActive,指向当前活动的View.

6.CView有一个成员变量CDocument* m_pDocument,指向相关的Document.

 

从一个视图类取得另一视图类的指针可以这样。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值