没有合适的资源?快使用搜索试试~ 我知道了~
首页MFC深层原理--对mfc清楚的解释
MFC深层原理--对mfc清楚的解释
需积分: 9 16 下载量 97 浏览量
更新于2023-03-03
评论
收藏 693KB DOCX 举报
MFC深层原理 --对mfc清楚的解释 MFC深层原理 --对mfc清楚的解释 MFC深层原理 --对mfc清楚的解释 MFC深层原理 --对mfc清楚的解释 MFC深层原理 --对mfc清楚的解释
资源详情
资源评论
资源推荐
前言.............................................................................................................................................7
约定和说明.................................................................................................................................9
第 1 章 MFC 概述..................................................................................................................10
1.1 MFC 是一个编程框架.............................................................................................10
1.1.1 封装................................................................................................................10
1.1.2 继承................................................................................................................10
1.1.3 虚拟函数和动态约束...................................................................................11
1.1.4 MFC 的宏观框架体系..................................................................................11
1.2 MDI 应用程序的构成..............................................................................................12
1.2.1 构成应用程序的对象...................................................................................12
1.2.2 构成应用程序的对象之间的关系...............................................................13
1.2.3 构成应用程序的文件...................................................................................14
第 2 章 MFC 和 Win32..........................................................................................................16
2.1 MFC Object 和 Windows Object 的关系.................................................................16
2.2 Windows Object........................................................................................................18
2.2.1 Windows 的注册...........................................................................................19
2.2.2 MFC 窗口类 CWnd.......................................................................................21
2.2.3 在 MFC 下创建一个窗口对象.....................................................................23
2.2.4 MFC 窗口的使用..........................................................................................24
2.2.5 在 MFC 下窗口的销毁.................................................................................24
2.3 设备描述表...............................................................................................................25
2.3.1 设备描述表概述...........................................................................................25
2.3.2 设备描述表在 MFC 中的实现.....................................................................27
2.3.3 MFC 设备描述表类的使用..........................................................................28
2.4 GDI 对象...................................................................................................................30
第 3 章 CObject 类.................................................................................................................32
3.1 CObject 的结构........................................................................................................32
3.2 CObject 类的特性....................................................................................................33
3.3 实现 CObject 特性的机制........................................................................................35
3.3.1 DECLARE_DYNAMIC 等宏的定义...........................................................35
3.3.2 CruntimeClass 类的结构与功能...................................................................38
3.3.3 动态类信息、动态创建的原理...................................................................41
3.3.4 序列化的机制................................................................................................41
第 4 章 消息映射的实现.......................................................................................................43
4.1 Windows 消息概述..................................................................................................43
4.1.1 消息的分类....................................................................................................43
4.1.2 消息结构和消息处理...................................................................................44
4.2 消息映射的定义和实现..........................................................................................45
4.2.1 MFC 处理的三类消息..................................................................................45
4.2.2 MFC 消息映射的实现方法..........................................................................46
4.2.3 在声明与实现的内部...................................................................................46
4.2.3.1 消息映射声明的解释........................................................................48
4.2.3.2 消息映射实现的解释........................................................................50
4.2.4 消息映射宏的种类.......................................................................................51
1
4.3 CcmdTarget 类..........................................................................................................53
4.4 MFC 窗口过程.........................................................................................................55
4.4.1 MFC 窗口过程的指定..................................................................................55
4.4.2 对 Windows 消息的接收和处理..................................................................57
4.4.2.1 从窗口过程到消息映射....................................................................57
4.4.2.2 Windows 消息的查找和匹配............................................................59
4.4.2.3 Windows 消息处理函数的调用........................................................60
4.4.2.4 消息映射机制完成虚拟函数功能的原理........................................61
4.4.3 对命令消息的接收和处理...........................................................................62
4.4.3.1 MFC 标准命令消息的发送...............................................................62
4.4.3.2 命令消息的派发和消息的多次处理................................................64
4.4.3.3 一些消息处理类的 OnCmdMsg 的实现...........................................66
4.4.3.4 一些消息处理类的 OnCommand 的实现.........................................67
4.4.4 对控制通知消息的接收和处理...................................................................68
4.4.4.1 WM_COMMAND 控制通知消息的处理.........................................68
4.4.4.2 WM_NOTIFY 消息及其处理:..........................................................69
4.4.4.3 消息反射.............................................................................................70
4.4.5 对更新命令的接收和处理...........................................................................72
4.4.5.1 实现方法.............................................................................................72
4.4.5.2 状态更新命令消息............................................................................73
4.4.5.3 类 CCmdUI.........................................................................................73
4.4.5.4 自动更新用户接口对象状态的机制................................................74
4.5 消息的预处理...........................................................................................................76
4.6 MFC 消息映射的回顾.............................................................................................77
第 5 章 MFC 对象的创建......................................................................................................79
5.1 MFC 对象的关系.....................................................................................................79
5.1.1 创建关系........................................................................................................79
5.1.2 交互作用关系................................................................................................80
5.2 MFC 提供的接口.....................................................................................................81
5.2.1 虚拟函数接口................................................................................................81
5.2.2 消息映射方法和标准命令消息...................................................................85
5.3 MFC 对象的创建过程.............................................................................................88
5.3.1 应用程序中典型对象的结构.......................................................................88
5.3.1.1 应用程序类的成员变量....................................................................89
5.3.1.2 CDocument 的成员变量....................................................................90
5.3.1.3 文档模板的属性................................................................................91
5.3.2 WinMain 入口函数.......................................................................................92
5.3.2.1 WinMain 流程....................................................................................92
5.3.2.2 MFC 空闲处理...................................................................................94
5.3.3 SDI 应用程序的对象创建............................................................................94
5.3.3.1 文档模板的创建................................................................................95
5.3.3.2 文件的创建或者打开........................................................................96
5.3.3.3 SDI 边框窗口的创建.......................................................................100
5.3.3.4 视的创建..........................................................................................104
2
5.3.3.5 窗口初始化......................................................................................104
5.3.3.6 视的初始化......................................................................................107
5.3.3.7 激活边框窗口(处理 WM_ACTIVE)...............................................108
5.3.3.8 SDI 流程的回顾...............................................................................109
5.3.4 MDI 程序的对象创建.................................................................................110
5.3.4.1 有别于 SDI 的主窗口加载过程......................................................111
5.3.4.2 MDI 子窗口、视、文档的创建......................................................112
5.3.4.3 MDI 子窗口的初始化和窗口的激活.............................................113
第 6 章 应用程序的退出.....................................................................................................117
6.1 边框窗口对 WM_CLOSE 的处理.........................................................................117
6.2 窗口的销毁过程.....................................................................................................121
6.2.1 DestroyWindow...........................................................................................121
6.2.2 处理 WM_DESTROY 消息........................................................................121
6.2.3 处理 WM_NCDESTROY 消息..................................................................121
6.3 SDI 窗口、MDI 主、子窗口的关闭....................................................................122
第 7 章 MFC 的 DLL............................................................................................................124
7.1 DLL 的背景知识....................................................................................................124
7.2 调用约定.................................................................................................................126
7.2.1 MFC 的 DLL 应用程序的类型...................................................................127
7.3 DLL 的几点说明....................................................................................................128
7.4 输出函数的方法.....................................................................................................129
第 8 章 MFC 的进程和线程................................................................................................131
8.1 Win32 的进程和线程概念.....................................................................................131
8.2 Win32 的进程处理简介.........................................................................................131
8.2.1 进程的创建..................................................................................................131
8.2.2 进程的终止..................................................................................................132
8.3 Win32 的线程.........................................................................................................133
8.3.1 线程的创建..................................................................................................133
8.3.2 线程的终止..................................................................................................133
8.3.3 线程局部存储..............................................................................................134
8.4 线程同步.................................................................................................................135
8.4.1 同步对象......................................................................................................135
8.4.2 等待函数......................................................................................................136
8.5 MFC 的线程处理...................................................................................................137
8.5.1 创建用户界面线程.....................................................................................137
8.5.2 创建工作者线程.........................................................................................137
8.5.3 AfxBeginThread..........................................................................................138
8.5.4 CreateThread 和_AfxThreadEntry..............................................................139
8.5.5 线程的结束..................................................................................................141
8.5.6 实现线程的消息循环.................................................................................141
第 9 章 MFC 的状态............................................................................................................142
9.1 模块状态.................................................................................................................142
9.2 模块、进程和线程状态的数据结构....................................................................143
9.2.1 层次关系......................................................................................................143
3
9.2.2 CNoTrackObject 类.....................................................................................144
9.2.3 AFX_MODULE_STATE 类.......................................................................145
9.2.4 _AFX_BASE_MODULE_STATE.............................................................147
9.2.5 _AFX_THREAD_STATE...........................................................................148
9.2.6 AFX_MODULE_THREAD_STATE.........................................................149
9.3 线程局部存储机制和状态的实现........................................................................150
9.3.1 CThreadSlotData 和_afxThreadData..........................................................151
9.3.1.1 CThreadSlotData 的定义.................................................................151
9.3.1.2 CThreadSlotData 的一些数据成员.................................................152
9.3.1.3 _afxThreadData................................................................................152
9.3.2 线程状态_afxThreadState...........................................................................154
9.3.3 进程模块状态 afxBaseModuleState...........................................................156
9.3.4 状态对象的创建.........................................................................................157
9.3.4.1 状态对象的创建过程......................................................................157
9.3.4.2 创建过程所涉及的几个重要函数的算法......................................159
9.4 管理状态.................................................................................................................160
9.4.1 模块状态切换..............................................................................................161
9.4.2 扩展 DLL 的模块状态................................................................................162
9.4.2.1 _AFX_EXTENSION_MODULE.....................................................163
9.4.2.2 扩展 DLL 的初始化函数.................................................................164
9.4.3 核心 MFC DLL...........................................................................................165
9.4.4 动态链接的规则 DLL 的模块状态的实现................................................166
9.5 状态信息的作用.....................................................................................................167
9.5.1.1 模块信息的保存和管理..................................................................167
9.5.2 MFC 资源、运行类信息的查找................................................................168
9.5.3 模块信息的显示.........................................................................................169
9.5.4 模块-线程状态的作用................................................................................170
9.5.4.1 只能访问本线程 MFC 对象的原因................................................170
9.5.4.2 实现 MFC 对象和 Windows 对象之间的映射...............................171
9.5.4.3 临时对象的处理..............................................................................172
9.6 状态对象的删除和销毁........................................................................................173
第 10 章 内存分配方式和调试机制...................................................................................175
10.1 M 内存分配..........................................................................................................175
10.1.1 内存分配函数...........................................................................................175
10.1.2 C++的 new 和 delete 操作符....................................................................176
10.2 调试手段...............................................................................................................177
10.2.1 C 运行库提供和支持的调试功能............................................................177
10.2.2 MFC 提供的调试手段..............................................................................177
10.2.3 内存诊断....................................................................................................180
第 11 章 MFC 下的文件类..................................................................................................182
11.1 文件操作的方法...................................................................................................182
11.2 MFC 的文件类.....................................................................................................182
11.2.1 CFile 的结构..............................................................................................182
11.2.1.1 CFile 定义的枚举类型...................................................................182
4
11.2.1.2 CFile 的其他一些成员变量..........................................................184
11.2.1.3 CFile 的成员函数...........................................................................184
11.2.2 CFile 的部分实现......................................................................................185
11.2.3 CFile 的派生类..........................................................................................186
第 12 章 对话框和对话框类 CDialog.................................................................................188
12.1 模式和无模式对话框..........................................................................................188
12.1.1 模式对话框................................................................................................188
12.1.2 无模式对话框...........................................................................................189
12.2 对话框的 MFC 实现............................................................................................189
12.2.1 CDialog 的设计和实现.............................................................................190
12.2.1.1 CDialog 的成员变量......................................................................190
12.2.1.2 CDialog 的成员函数:..................................................................190
12.2.2 MFC 模式对话框的实现..........................................................................191
12.2.2.1 MFC 对话框过程...........................................................................191
12.2.2.2 模式对话框窗口过程....................................................................192
12.2.2.3 使用原对话框窗口过程作消息的缺省处理................................195
12.2.2.4 Dialog 命令消息和控制通知消息的处理....................................196
12.2.2.5 消息预处理和 Dialog 消息............................................................198
12.2.2.6 模式对话框的消息循环................................................................199
12.2.3 对话框的数据交换...................................................................................202
12.2.3.1 数据交换的方法............................................................................202
12.2.3.2 CDataExchange..............................................................................203
12.2.3.3 数据交换和验证函数....................................................................204
12.2.3.4 UpdateData 函数............................................................................207
12.3 无模式对话框.......................................................................................................208
12.3.1 CScrollView...............................................................................................208
12.3.2 CFormView................................................................................................209
12.3.2.1 CFormView 的创建........................................................................210
12.3.2.2 CFormView 的消息预处理...........................................................212
12.3.2.3 CFormView 的输入焦点...............................................................213
第 13 章 MFC 工具条和状态栏..........................................................................................214
13.1 Windows 控制窗口..............................................................................................214
13.2 MFC 的工具条和状态栏类.................................................................................215
13.2.1 控制窗口的创建.......................................................................................217
13.2.1.1 PreCreateWindow...........................................................................217
13.2.1.2 控制条的窗口创建........................................................................218
13.2.2 控制条的销毁...........................................................................................224
13.2.3 处理控制条的位置...................................................................................224
13.2.3.1 计算控制条位置的过程和算法....................................................224
13.2.3.2 CFrameWnd 的虚拟函数 RecalcLayout........................................225
13.2.3.3 CWnd 的成员函数 RepositionBars...............................................226
13.2.4 工具条、状态栏和边框窗口的接口.......................................................228
13.2.4.1 应用程序在状态栏中显示信息....................................................228
13.2.4.2 状态栏显示菜单项的提示信息....................................................231
5
剩余63页未读,继续阅读
CHINADENG
- 粉丝: 21
- 资源: 36
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- RTL8188FU-Linux-v5.7.4.2-36687.20200602.tar(20765).gz
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
- SPC统计方法基础知识.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0