第1章 C++关键语法及其在VC++中的应用 1
1.l 重载 2
1.1.l 函数重载 2
1.1.2 运算符重载 7
1.1.3 函数重载在MFC中的应用举例 16
1.1.4 运算符重载在MFC中的应用举例 17
1.2 虚拟函数 19
1.2.l 静态联编与动态联编 19
1.2.2 虚拟函数的定义 21
1.2.3 虚拟函数的实现机制 23
1.2.4 虚拟函数的应用 28
1.2.5 纯虚拟函数 41
1.2.6 虚拟函数在MFC中的应用举例 43
1.3 静态成员 44
1.3.l 静态成员变量 44
1.3.2 静态成员函数 47
1.3.3 静态成员变量在MFC中的应用举例 49
l.3.4 静态成员函数在MFC中的应用举例 49
1.4.l 类模板的定义 50
1.4 类模板 50
1.4.2 使用类模板和模板类 60
1.4.3 模板在MFC中的应用举例 64
1.5 多重继承和内嵌类 66
1.5.l 继承方式与访问权限 66
1.5.2 多重继承和虚拟基类 70
1.5.3 内嵌类与类合成 76
1.5.4 类继承与类合成的应用 90
1.5.5 多重继承和内嵌类在COM中的应用 95
第2章 MFC类结构与窗口操作 101
2.1 MFC类结构 102
2.1.1 CObject类 103
2.1.2 CCmdTarget类 112
2.1.3 CWinThread类 114
2.1.4 CWnd类 116
2.2 CWnd类与Windows窗日的关系 119
2.2.l 使用 WIN32 API创建窗口 120
2.2.2 亲自动手创建窗口封装类 123
2.2.3 CWnd类如何封装Windows窗口 138
2.3.1 CFrameWnd类 143
2.3 CWnd的派生类 143
2.3.2 CView类 148
2.3.3 CDialog类 152
2.4 窗口操作 159
2.4.l 检索窗口 159
2.4.2 屏幕坐标与客户区坐标 163
2.4.3 窗口之间的层次关系 164
2.4.4 父窗口与子窗口 166
2.5 Windows窗口类 172
2.5.l 窗口类的结构 173
2.5.2 系统定义的窗口类 175
2.5.3 窗口的子类化和超类化 177
第3章 消息映射与消息处理 181
3.1 MFC的消息映射 182
3.1.l 消息映射机制 182
3.1.2 消息映射的宏定义 184
3.2 非窗口消息 187
3.2.l 命令消息 187
3.2.2 通知消息 188
3.2.3 反射消息 191
3.2.4 非窗口消息的传递路由 192
3.2.5 非窗口消息的扩展 206
3.3 特殊消息和处理函数 209
3.3.l 空闲消息处理 209
3.3.2 命令状态更新消息 212
3.3.3 使用OnCmdMsg()函数分发非窗口消息 221
第4章 控件子窗口 225
4.l 控件的创建和子类化 226
4.1.l 控件的创建 226
4.1.2 控件的子类化 231
4.2 控件的属主画与自定义画 233
4.2.l 属主画消息处理和虚拟函数 234
4.2.2 几个控件的属主画特性 238
4.2.3 控件的自定义画 249
4.3 自定义控件 252
4.3.l 自定义控件的窗口类 253
4.3.2 自定义控件的通知消息 255
4.3.3 自定义控件的绘制 256
4.3.4 自定义的分隔条控件 257
第5章 界面忧化 267
5.1.l 为控制条按需分配客户区 268
5.l 开发使用控制条 268
5.1.2 控制条基类CControlBar 272
5.1.3 控制条的停靠与浮动 279
5.1.4 实现停靠浮动子窗口 285
5.2 工具栏优化 296
5.2.l 添加按钮文本 296
5.2.2 创建工具栏的子控件 298
5.3.l 动态创建菜单 303
5.3 菜单优化 303
5.3.2 菜单的属主画 309
第6章 文档视图框架 321
6.1 CWinApp应用类 322
6.1.l 应用类全局对象 322
6.1.2 注册表和 INI文件操作 323
6.1.3 命令行参数处理 324
6.2 单文档模板框架 329
6.2.l 文档、框架、视图的动态创建 329
6.2.2 非拆分视图的切换 335
6.3.1 CMDIFrameWnd主框架 337
6.3 多文档模板框架 337
6.3.2 CMDIChildWnd子框架 341
6.3.3 CDocument类的文档管理功能 344
6.4 编写多框架的应用程序 352
6.4.l 创建多框架的必要性 353
6.4.2 自动创建的多框架程序 353
6.4.3 改进自动创建的多框架程序 359
6.4.4 手工创建多框架程序 364
6.5.l 认识CsplitterWnd窗口拆分类 370
6.5 拆分视图 370
6.5.2 应用Cview::OnCreate()消息处理函数实现拆分 374
6.5.3 创建非视图的拆分子窗口 376
6.5.4 拆分视图的创建删除和隐藏显示 378
第7章 屏幕绘图与打印 385
7.1 MFC设备环境类 386
7.1.l 基类 CDC 386
7.1.2 CWindowDC与 CClientDC 389
7.1.3 WM_PAINT窗口消息与 CPaintDC类 392
7.1.4 使用设备上下文的剪裁区提高刷新效率 395
7.2.l 准备打印设备和打印参数 405
7.2 脱离视图的MFC打印功能 405
7.2.2 单页打印 408
7.2.3 分页打印 409
7.2.4 调整图文打印尺寸 418
7.3 窗口的自动打印 421
7.3.l 自动打印的消息处理 421
7.3.2 自动打印客户区和非客户区 422
第8章 多线程的创建与控制 429
8.1.l 创建工作者线程 430
8.1 工作者线程和界面线程 430
8.1.2 创建用户界面线程 433
8.l.3 线程和进程的优先级 445
8.1.4 线程的终止 447
8.2 线程间的通信 448
8.2.l 线程间的互斥 448
8.2.2 线程间的同步 453
8.2.3 线程间的资源共享 457
第9章 操作Web网页 469
9.l.l 了解HTML超文本标记语言 470
9.1 DHTML对象模型 470
9.1.2 DHTML的定义 471
9.1.3 了解 JavaScript和 VBScript脚本语言 474
9.2 将Web测览器嵌入应用程序 475
9.2.1 使用 MSIE ActiveX控件 475
9.2.2 应用CHtmlView视图类 477
9.3 操作DHTML对象和网页元素 479
9.3.l 操作单框架网页元素 480
9.3.2 操作多框架网页元素 486
第10章 异常处理 495
10.l 异常处理的种类与应用 496
10.1.1 C++异常处理 496
10.1.2 结构化异常处理 500
10.1.3 异常处理中的资源释放 501
10.1.4 异常处理的选择使用 505
10.2 MFC的异常处理 506
10.2.1 MFC的异常类CException 506
10.2.2 MFC的 CException派生类 508
10.2.3 自定义 CException的派生类 512