MFC文档视图结构分析
时间:2011-12-24
来源:互联网
先上个图:
http://hi.csdn.net/attachment/201112/24/10181841_13247052951IQe.jpg
这个图是MFC文档,视图,应用程序,框架结构图
研究他的数据结构发现:
继续上图:
http://hi.csdn.net/attachment/201112/24/10181841_1324708789IWwS.jpg
分析数据结构发现:
这里只谈数据结构,摒弃成员函数:
CWinApp 类里有一个CDocManager类的指针
CDocManager 里面有一个链表类CPtrList的指针,这个链表就是来添加CDocTemplate类的对象
CDocTemplate这个是抽象类,所以添加的其实是CMultiDocTemplate或CSingleDocTemplate类的对象
CMultiDocTemplate或CSingleDocTemplate这两个类是典型的资源管理类,管理CDocument类的对象
CDocument类里也有一个链表类CPtrList的指针,这个链表是来添加CView类的对象
然后就是CView类,简直就是光源,四处发散,友元了很多类
然后是框架类CFrameWnd类,这个类保存了当前活动视图的指针
....................................

研究了有一阵子了,发现层次不够,思维放不开,思维总习惯性局限于一两个类之中,整体把握太差,不过总算有点收获,
搞清楚了这几个类之间的数据结构关系对于应用MFC多文档编程可谓是事半功倍。应为不会茫然,知道在这个类里面我能得到什么,可以得到什么。
我这里就全当抛砖引玉,至于如何跳出这个框架,那就请大牛们给点意见吧
http://hi.csdn.net/attachment/201112/24/10181841_13247052951IQe.jpg
这个图是MFC文档,视图,应用程序,框架结构图
研究他的数据结构发现:
继续上图:
http://hi.csdn.net/attachment/201112/24/10181841_1324708789IWwS.jpg
分析数据结构发现:
这里只谈数据结构,摒弃成员函数:
CWinApp 类里有一个CDocManager类的指针
CDocManager 里面有一个链表类CPtrList的指针,这个链表就是来添加CDocTemplate类的对象
CDocTemplate这个是抽象类,所以添加的其实是CMultiDocTemplate或CSingleDocTemplate类的对象
CMultiDocTemplate或CSingleDocTemplate这两个类是典型的资源管理类,管理CDocument类的对象
CDocument类里也有一个链表类CPtrList的指针,这个链表是来添加CView类的对象
然后就是CView类,简直就是光源,四处发散,友元了很多类
然后是框架类CFrameWnd类,这个类保存了当前活动视图的指针
....................................

研究了有一阵子了,发现层次不够,思维放不开,思维总习惯性局限于一两个类之中,整体把握太差,不过总算有点收获,
搞清楚了这几个类之间的数据结构关系对于应用MFC多文档编程可谓是事半功倍。应为不会茫然,知道在这个类里面我能得到什么,可以得到什么。
我这里就全当抛砖引玉,至于如何跳出这个框架,那就请大牛们给点意见吧
作者: qscool1987 发布时间: 2011-12-24
........图呢,晕死,贴错了
作者: qscool1987 发布时间: 2011-12-24
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28