博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【笔记】《深入浅出MFC》第5章 总观Application Framework
阅读量:7093 次
发布时间:2019-06-28

本文共 1150 字,大约阅读时间需要 3 分钟。

凝聚性强、组织化强的类库就是Application Framework。一组合作无间的对象,彼此藉消息的流动而沟通,并且互相调用对方的函数以求完成任务,这就是Application Framework。

Application Framework是一组超级的类库,能够被称为Framework者必须是其中的类性质紧密咬合,互相呼应。

绝大部分类库,往往以一个或两个类,作为其它绝大部分类的基础,MFC也一样。CObject是万类之首,凡派生自CObject者,得以继承数个面向对象重要性质,包括RTTI(运行时类型识别)、Persistence(对象保存)、Dynamic Creation(动态创建)、Diagnostic(错误诊断)。

MFC支持的数据处理类(collection classes)有:

异常处理有关的MFC类有以下11种:

凡派生自CWnd的类才能收到WM_窗口消息(WM_COMMAND除外)。

所谓窗口handle和C++对象结盟,实际上是CWnd对象有一个成员变量m_hWnd,就放着对应窗口handle。所以,只要有CWnd对象或CWnd对象指针,就可以获得其窗口handle。

HWND hWnd = pWnd->m_hWnd;

CCmdTarget是CWnd的父类。派生自它,类才能够处理命令消息WM_COMMAND。这个类是消息映射以及命令消息传递的大部分关键。

Document/View的观念是希望把数据的本体和数据的显示分开处理。由于文件产生之际,必须动态创建Document/View/Frame三种对象,所以又必须由所谓的Document Template管理之。Document Template扮演黏胶的角色,把Document 和View 和其Frame(外框窗口)胶黏在一块儿。

CDocument:当你为自己程序由CDocument派生出一个子类后,应该在其中加上成员变量,以容纳文件数据;并加上成员函数,负责修改文件内容以及读写文件。读写文件由虚函数Serialize负责。

下面是几个常见的Afx全局函数:

CObject和CRuntimeClass中封装了数个所谓的object services,包括“取得运行时的类信息(RTTI)”、Serialization(文件读写)、动态产生对象等等。所有派生自CObject的类,都继承这些机能。

MFC针对这些机能定义了一些宏:

MFC的消息映射与命令传递由以下宏完成:

 

MFC的大部分数据类型和一般的Win32程序所用的相同,下面是共用的数据类型:

下面是MFC独特的数据类型:

转载于:https://www.cnblogs.com/mengwang024/p/4973108.html

你可能感兴趣的文章
centos7+redis+php环境配置
查看>>
15.5. Json 内容展示
查看>>
Linux上的free命令详解
查看>>
吐槽一些技术想法和事情
查看>>
如何运行Hadoop自带的例子
查看>>
SAP HUM 如何看哪些HU还在923包装区尚未上架?
查看>>
sysresv
查看>>
SQL SERVER 重组含有特殊字符的索引时遇到“关键字 'with' 附近有语法错误.”...
查看>>
阿里巴巴跨物理界招人,世界级音频专家冯津伟入职人工智能团队iDST
查看>>
全球第四大航空南方航空与阿里云合作,成首家云上航空公司
查看>>
[20170727]library cache: mutex X.txt
查看>>
Shell 起停脚本
查看>>
[20171203]平均长度和虚拟列.txt
查看>>
LIBRARY_PATH和LD_LIBRARY_PATH环境变量的区别
查看>>
java | HttpsURLConnection 实现https请求
查看>>
.Net自写Task进程监控程序
查看>>
75篇关于Tomcat源码和机制的文章
查看>>
dbca -silent -responsefile 建库由于tmpfs太小报错ORA-27102: out of memory
查看>>
数据科学面临的共同挑战有哪些?
查看>>
跨域资源共享(CORS)在ASP.NET Web API中是如何实现的?
查看>>