第1章 概述 1
1.1 MFC与C++ 2
1.2 VC++组件 3
1.3 安装 7
1.3.1 环境 7
1.3.2 安装过程 7
第2章 开发环境 17
2.1 主窗口 18
2.2 工具栏 20
2.2.1 Standard工具栏 21
2.2.2 Build Mini-bar工具栏 22
2.3 菜单栏 22
2.3.1 File菜单 23
2.3.2 Edit菜单 27
2.3.3 View菜单 34
2.3.4 Insert菜单 37
2.3.5 Project菜单 39
2.3.6 Build菜单 43
2.3.7 Tools菜单 45
2.3.8 Window菜单 48
2.3.9 Help菜单 50
2.4 工程工作区和主工作区 52
2.4.1 ClassView面板 52
2.4.2 FileView面板 55
2.4.3 ResourceView面板 56
2.5.1 加速键编辑器 57
2.5 资源和资源编辑器 57
2.4.4 主工作区 57
2.5.2 对话框编辑器 58
2.5.3 图形编辑器 60
2.5.4 菜单编辑器 62
2.5.5 字符串表编辑器 63
2.5.6 工具栏编辑器 63
2.6 版本信息编辑器 64
第3章 从AppWizard开始 67
3.1 应用程序类型 68
3.2 创建简单的Windows应用程序 69
3.3 AppWizard——生成结果 77
3.3.1 分类 78
3.3.2 传递和接收 84
3.3.3 处理 86
3.4 实例 89
第4章 对话框及控件 93
4.1 对话框 94
4.1.1 组成与分类 94
4.1.2 CDialog类 94
4.1.3 创建对话框 96
4.1.4 通用对话框类 98
4.2 控件 104
4.2.1 标准Windows控件 104
4.2.2 其他控件 112
4.3 创建基于对话框的应用程序 126
4.4.1 工具栏 137
4.4 控件栏 137
4.4.2 状态栏 138
4.4.3 对话框栏 140
4.5 属性单、属性页和向导 140
4.5.1 CPropertyPage类 140
4.5.2 CPropertySheet类 141
4.5.3 创建属性单 142
4.5.4 创建向导 146
4.6 实例 148
第5章 文档类和视类 203
5.1 文档类 204
5.2 文档模板类 205
5.3 视类 206
5.4 文档/视结构 208
5.5 菜单和加速键 209
5.5.1 菜单 209
5.5.2 添加消息处理函数 210
5.5.3 CMenu类 210
5.5.4 创建快捷菜单 211
5.5.5 添加加速键 215
5.6 实例 217
第6章 图形处理 269
6.1 设备环境 270
6.1.1 图形设备接口 270
6.1.2 设备环境映射模式 271
6.2 设备环境类 271
6.2.1 基类CDC类 272
6.2.2 用类CPaintDC绘图 274
6.2.3 用类CClientDC管理客户区 276
6.2.4 用类CWindowDC管理框架窗口 277
6.2.5 具有类CMetaFileDC的Windows元文件 278
6.3 GDI对象 279
6.3.1 类型 279
6.3.2 构造 280
6.3.3 选择 280
6.3.4 表示和使用颜色 281
6.4 画笔 282
6.4.1 分类 282
6.4.2 创建CPen类对象 282
6.4.3 选择堆画笔 284
6.4.4 绘画 285
6.4.5 实例 285
6.5 画刷 293
6.5.1 分类 293
6.5.2 创建CBrush对象 293
6.5.3 使用逻辑画刷 295
6.5.4 实例 295
6.6 字体和文本 301
6.6.1 字体类型和字体属性 301
6.6.2 TEXTMETRIC结构 304
6.6.3 LOGFONT结构 305
6.6.5 绘制文本 306
6.6.4 创建CFont对象 306
6.6.6 实例 309
第7章 数据库编程 315
7.1 ODBC类 316
7.1.1 CDatabase类 316
7.1.2 CRecodset类 317
7.1.3 CRecordView类 319
7.2 创建ODBC数据库应用程序 320
7.2.1 注册数据库 320
7.2.2 创建基本的ODBC应用程序 322
7.2.3 处理ODBC异常 322
7.3 ODBC应用程序实例 323
7.4 DAO与ODBC 343
7.5.1 CDoWorkspace类 345
7.5 DAO类 345
7.5.2 CDaoDatabase类 346
7.5.3 CDaoRecordset类 348
7.5.4 CDaoTableDef类 351
7.5.5 CDaoQueryDef类 352
7.5.6 其他DAO类 354
7.6 常用的DAO数据库操作 356
7.6.1 异常处理 356
7.6.2 新建数据库 357
7.6.3 打开数据库 357
7.6.4 关闭数据库 359
7.6.5 新建表 359
7.6.7 打开表 360
7.6.6 删除表 360
7.6.8 修改表结构 361
7.6.9 插入记录 361
7.6.10 删除记录 363
7.6.11 修改记录 363
7.7 DAO应用程序实例 364
7.8 OLE DB模板 381
7.8.1 OLE DB的基本概念 382
7.8.2 OLE DB与ODBC的关系 382
7.8.3 ADO的概念 382
7.8.4 ADO与其他编程接口的比较 383
第8章 打印与打印预览 385
8.1 基本特性 386
8.2 打印原理 388
8.2.1 缺省打印过程 388
8.2.2 打印多页文档 388
8.2.3 页眉和页脚 391
8.2.4 分配GDI资源 391
8.3 打印预览 391
8.4 与打印有关的MFC类 392
8.4.1 CPrintInfo 392
8.4.2 CPageSetupDialog 393
8.4.3 CPrintDialog类 396
8.5 实例 397
第9章 多任务和多线程 403
9.1 多线程概念 404
9.2 创建与终止线程 405
9.2.1 AfxBeginThread函数 405
9.2.2 创建用户界面线程 406
9.2.3 创建辅助线程 407
9.2.4 终止线程 408
9.2.5 线程的优先级 409
9.3 线程通信 410
9.3.1 使用全局变量 410
9.3.2 使用消息 410
9.3.3 使用事件对象 411
9.4.1 临界区 412
9.4 线程同步 412
9.4.2 互斥量 414
9.4.3 信号灯 416
9.4.4 使用同步类 418
9.5 实例 419
第10章 调试 439
10.1 断点 440
10.2 调试命令和窗口 440
10.2.1 菜单选项 440
10.2.2 设置断点 441
10.2.3 检查变量值 442
10.2.4 单步执行代码 444
10.2.5 其他调试窗口 445
10.4 定义Dump成员函数 446
10.3 使用MFC Tracer 446
第11章 常用MFC类 449
11.1 数组类 450
11.1.1 CArray 450
11.1.2 其他数组类 451
11.2 链表类 451
11.3 CPont类 453
11.4 CRect类 453
11.5 CSize类 455
11.6 CString类 456
11.7 CTime类 458
11.8 CTimeSpan类 459
第12章 MFC 461
12.1 简介 462
12.2 分层 462
12.2.1 根类 462
12.2.2 MFC应用程序结构类 462
12.2.3 窗口、对话框和控件类 465
12.2.4 绘图和打印类 469
12.2.5 简单数据类型类 470
12.2.6 数组、列表和映射类 470
12.2.7 文件和数据库类 471
12.2.8 Internet和网络类 472
12.2.9 OLE类 473
12.2.10 调试和异常类 476
12.3 与C语言API的关系 476