MFC(六)框架理论

news/2024/11/20 1:35:43/

关键类

,MFC中关键类有:

CMFCAPP:最底层的类,也是最重要的类,统筹全局,管理DOCUMENT TEMPLATE

CFRAMEWND:框架窗口,包括菜单栏、工具栏、状态栏等等,主要是负责窗口的布局

CVIEW:负责展示具体的数据

CDOCUMENT:负责提供具体的数据

我们可以从CMFCAPP中直接看到他的三个类

点击 类视图 ==CMFCpaintApp===转到InitInstance定义

注意一下,这里三个类前面都有RUNTIME_CLASS,这是什么意思呢 ,我们查看其指针的定义,发现它的本质为struct CRuntimeClass,它里面有个成员函数,CObject* CreateObject();,这个函数的作用是一个虚函数,通过子类重构,来接收不同的消息,用以生成不同的窗口,即多态,另外

CRuntimeClass里还有一些成员变量及方法,可以获取RUNTIME_CLASSS的类的名字、和一些信息

 它们的关系

1.查看CMFCAPP,发现它父类的父类的父类CWinThread,有一个成员变量,CDocManager* m_pDocManager,查看CDocManager定义,它里面又有一个CPtrList m_templateList链表,包含了所有的文档,它的用处是维护所有的DOCUMENTTEMPLATE,CMFCAPP会把所有的DOCUMENTTEMPLATE加入到链表中

什么是DOCUMENTTEMPLATE,即VIEW、DOC、FRAME

2.查看CMFCpaintDoc,直接查看它的父类CDocument,它里面有两个重要的成员变量,CDocTemplate* m_pDocTemplate;和CPtrList m_viewList,这两个类 ,一个类回指OCUMENTTEMPLATE,一个指向视图列表,文档和视图是多对多的关系

3.查看CFRAMEWND,查看父类CFrameWndEx,再查看父类CFrameWnd,它里面有

CView* m_pViewActive,这个指针指向当前活动的view,称为“当前视图指针”

4.查看CVIEW,它的父类CView里面有个成员函数,CDocument* m_pDocument;,它指向相关的document

启动流程

 

这里还有很多问题

1.当我想跟踪调试的时候,无法打开appmodul.cpp文件

https://ask.csdn.net/questions/7956074?spm=1001.2014.3001.5501

2.关于图2的一些问题

消息分类

标准消息:除WM_COMMAND消息以外,所有以WM开头的消息

命令消息:WM_COMMAND消息,来自菜单、工具栏 的消息

通告消息:由控件产生的消息,例如:按钮的单击,列表框的选择,通告消息会发给框架,框架又会发送命令消息给相应的控件,比如单击保存按钮,会发送通告给框架,框架又会发送保存命令给相应的控件

另外,凡是从CWND派生的类,都可以接收以上三类消息,而从CCMDTARGET派生的类,只能接收命令和通告消息,CCMDTARGET就是CWND的父类

 


http://www.ppmy.cn/news/162470.html

相关文章

camtasia2018-2019-2020下载安装激活码教程,永久免费版

Camtasia专业的录制工具,可以做动画,录制的视频可以自由放大缩小,从而不用pr,省时省力。Camtasia很快就学会了。你不需要大预算或花哨的视频编辑技能。只需录制你的屏幕并添加一些效果。 我现在发现我之前推荐的在线视频录制工具…

AutoCAD2022下载安装教程

软件下载 [软件名称]:AutoCAD 2022[软件语言]:简体中文 [软件大小]:1.72GB[下载链接]:https://pan.baidu.com/s/17oyBLkslKN1ekbEDGSoIpA[提取码]:5bp3 软件介绍 AutoCAD 2022提供丰富的工具集,通过 AutoC…

CASS10.1.6+CAD2016

CASS10.1.6必须和CAD2016搭载使用,目前网络上有一些误导,其它版本的CAD,CASS10.1.6识别不了运行环境。 链接: https://pan.baidu.com/s/1GBL1huFcMF-vTDKivBsiQQ 提取码: gjyy

FreeCAD-01软件下载安装

偶然的机会接触FreeCAD,果断官网(FreeCAD - Download)下载最新版安装 一路默认安装----- 可以根据电脑情况选择安装路径 软件安装完成打开 顺利完成安装。

Camtasia Studio2021-激活码-序列号-秘钥中文版下载安装最新详情介绍

Camtasia 2020是TechSmith旗下的一套专业屏幕录像软件,集屏幕录像和视频编辑为一体,录制屏幕的清晰度很高,编辑器也很容易上手,可以很轻松的制作很多效果,所以它也是很多自媒体人和教师的选择。 但是长久以来&#xf…

CAD2023下载安装教程

CAD是一款可视化的二维和三维绘图软件,许多命令和操作可以通过菜单选项和工具按钮等多种方式实现,可以用来完成任何设计,包括二维绘图、详细绘制、设计文档和基本三维设计,能够应用于机械设计、工业制图、工程制图、土木建筑、装饰…

CAXA电子图板2020中文版

教程: 1、下载解压,得到caxa cad 2020中文原程序和crack文件夹; 2、用虚拟光驱加载CAXACAD2020SP0_x86_x64_20.0.0.6460_2019-09-18.iso镜像文件 3、成功安装软件后,打开crack文件夹,选择安装的版本 4、完成&#xff…

欧派caxa设计软件_CAXA 2016 非常优秀的CAD电子图版设计软件

是一个开放的二维CAD平台,易学易用,稳定高效,性能优越,是由数码大方自主开发、具有完全自主知识产权,荣获软件行业“二十年金软件奖”的二维CAD软件产品。它可以零风险替代各种CAD平台,比普通CAD平台设计效率提升100%以上。是一款功能强大、不可多得二维CAD软件。经过大中…