第1章 Visual C++集成开发环境 1
1.1 Visual C++概述 1
1.1.1 Visual C++的特点 1
1.1.2 集成开发环境窗口 2
1.1.3 编译器和链接器 5
1.1.4 编写Win32控制台应用程序 5
1.1.5 MSDN帮助系统 7
1.2 项目和项目工作区 8
1.2.1 项目 8
1.2.2 项目工作区 9
1.2.3 ClassView类视图 9
1.2.4 ResourceView资源视图 10
1.2.5 FileView文件视图 11
1.2.6 项目设置 11
1.3 编辑器 12
1.3.1 源代码编辑器 12
1.3.2 资源编辑器 13
1.4 菜单栏和工具栏 18
1.4.1 菜单栏 18
1.4.2 工具栏 20
习题 23
第2章 C++语言基础 25
2.1 C++概述 25
2.1.1 C++语言的历史和特点 25
2.1.2 C++程序与C程序 26
2.1.3 C++对C的一般扩充 28
2.2 C++程序基本要素 29
2.2.1 标识符和关键字 29
2.2.2 常量和变量 30
2.2.3 运算符和表达式 30
2.3 C ++数据类型 32
2.3.1 基本数据类型 32
2.3.2 数组 33
2.3.3 指针 35
2.3.4 字符串 37
2.3.5 const常量类型 39
2.3.6 结构体 41
2.3.7 枚举 44
2.3.8 typedef类型定义 44
2.4 控制语句 45
2.4.1 选择语句 45
2.4.2 循环语句 48
2.4.3 转移语句 51
2.5 函数 52
2.5.1 函数的定义 52
2.5.2 函数的调用和参数传递 53
2.5.3 函数的声明 56
2.5.4 内联函数 57
2.5.5 函数的默认参数值 57
2.5.6 引用 58
2.6 作用域与存储类型 61
2.6.1 变量的作用域 61
2.6.2 变量的存储类型 63
2.6.3 作用域限定符 66
2.6.4 命名空间 66
2.6.5 函数的存储类型 70
2.6.6 动态内存分配 71
2.7 编译预处理指令 73
2.7.1 # define宏定义指令 73
2.7.2 # include文件包含指令 74
2.7.3 条件编译指令 75
习题 77
第3章 类和对象 87
3.1 面向对象程序设计方法及特征 87
3.1.1 结构化程序设计 87
3.1.2 面向对象程序设计 88
3.1.3 面向对象程序设计的基本特征 90
3.2 C++类 93
3.2.1 类的定义与实现 93
3.2.2 构造函数和析构函数 95
3.2.3 拷贝构造函数 97
3.2.4 this指针 100
3.3 静态成员 102
3.3.1 静态数据成员 102
3.3.2 静态成员函数 104
3.4 组合类 106
3.4.1 组合类的定义 106
3.4.2 组合类的拷贝构造函数 109
3.5 友元 110
3.5.1 友元函数 110
3.5.2 友元类 112
3.6 常对象和常对象成员 113
3.6.1 常对象 113
3.6.2 常成员函数 114
3.6.3 常数据成员 115
习题 115
第4章 继承与多态 123
4.1 继承与派生 123
4.1.1 基类和派生类 123
4.1.2 派生类的构造函数和析构函数 128
4.1.3 多继承 130
4.1.4 虚基类 133
4.2 多态和虚函数 138
4.2.1 基类指针指向派生类对象 138
4.2.2 虚函数 140
4.2.3 虚析构函数 142
4.2.4 纯虚函数与抽象类 143
4.3 重载 145
4.3.1 函数重载 145
4.3.2 运算符重载 148
4.4 模板 154
4.4.1 函数模板 154
4.4.2 类模板 156
4.5 Microsoft Visual C++的语法扩充 158
4.5.1 Visual C++扩充定义的数据类型 158
4.5.2 Visual C++运行库 159
4.5.3 运行时类型识别 161
4.5.4 编程规范 163
习题 164
第5章 创建应用程序框架 173
5.1 应用程序向导 173
5.1.1 Visual C++向导的类型 173
5.1.2 MFC AppWizard的使用步骤 174
5.1.3 MFC应用程序的开发流程 184
5.2 应用程序向导生成的文件 186
5.2.1 应用程序向导生成的文件类型 186
5.2.2 应用程序向导生成的头文件 187
5.2.3 应用程序向导生成的源文件 189
5.2.4 应用程序向导生成的资源文件 195
5.2.5 应用程序向导生成的其他文件 196
5.3 ClassWizard类向导 198
5.3.1 ClassWizard的功能 198
5.3.2 添加消息处理函数 199
5.3.3 添加类 201
5.4 程序调试 203
5.4.1 查找源程序中的语法错误 203
5.4.2 Debug调试器 204
5.4.3 跟踪调试程序 206
习题 209
第6章 文档与视图 213
6.1 文档/视图结构 213
6.1.1 文档/视图结构概述 213
6.1.2 文档与视图之间的相互作用 215
6.1.3 多文档 217
6.2 菜单设计 220
6.2.1 建立菜单资源 220
6.2.2 添加菜单命令处理函数 222
6.2.3 弹出式菜单 226
6.3 鼠标消息处理 228
6.3.1 鼠标消息 228
6.3.2 一个简单的绘图程序 228
6.4 工具栏和状态栏设计 234
6.4.1 添加工具栏按钮 234
6.4.2 定制状态栏 235
6.5 文档的读写 238
6.5.1 使用CFile类 238
6.5.2 序列化 240
6.5.3 自定义类的序列化 242
6.6 滚动视图和多视图 245
6.6.1 滚动视图 245
6.6.2 多视图 247
习题 251
第7章 对话框和标准控件 255
7.1 对话框概述 255
7.1.1 基于对话框的应用程序 255
7.1.2 对话框类CDialog 257
7.1.3 信息对话框 258
7.2 使用对话框 260
7.2.1 一般对话框工作流程 260
7.2.2 创建对话框 262
7.2.3 添加控件及关联的成员变量 264
7.2.4 对话框数据交换(DDX)和校验(DDV) 270
7.3 标准控件 272
7.3.1 控件概述 272
7.3.2 组织控件 274
7.3.3 控件的共有属性 275
7.3.4 静态控件 277
7.3.5 编辑框 278
7.3.6 按钮 281
7.3.7 列表框 284
7.3.8 组合框 289
习题 294
第8章 MFC原理与方法 299
8.1 Windows编程基础 299
8.1.1 Windows编程特点 299
8.1.2 应用程序编程接口(API) 300
8.1.3 Windows消息 306
8.1.4 句柄 308
8.2 微软基础类(MFC) 309
8.2.1 MFC概述 310
8.2.2 MFC体系结构 311
8.2.3 学习MFC的方法 313
8.3 MFC应用程序框架 314
8.3.1 应用程序框架中的对象 314
8.3.2 MFC应用程序的生存与消亡 315
8.3.3 常用的MFC文件 318
8.4 MFC消息管理 321
8.4.1 MFC消息映射机制 321
8.4.2 消息的发送 323
8.4.3 自定义消息处理 324
8.5 MFC宏 327
8.5.1 常用的MFC宏 328
8.5.2 运行时类型识别和动态创建 329
8.5.3 MFC调试宏 331
8.6 常用的MFC类 332
8.6.1 CRuntimeClass结构 333
8.6.2 CObject类 333
8.6.3 CCmdTarget类 336
8.6.4 CWinAPP类 336
8.6.5 CWnd类 337
8.6.6 CFrameWnd类 337
8.6.7 CView类 337
8.6.8 CDocument类 338
习题 338
第9章 图形绘制 343
9.1 图形设备接口 343
9.1.1 概述 343
9.1.2 设备环境 344
9.1.3 GDI坐标系和映射模式 346
9.1.4 颜色的设置 352
9.2 画笔和画刷 353
9.2.1 GDI对象 353
9.2.2 使用画笔 354
9.2.3 使用画刷 358
9.2.4 使用GDI堆对象 359
9.2.5 基本几何图形的绘制 361
9.3 文本与字体 363
9.3.1 绘制文本 363
9.3.2 字体概述 365
9.3.3 创建字体 366
9.4 位图、图标和光标 371
9.4.1 位图 371
9.4.2 图标 373
9.4.3 光标 376
习题 379
第10章 对话框高级编程 383
10.1 非模态对话框 383
10.1.1 模态对话框与非模态对话框 383
10.1.2 非模态对话框工作流程 384
10.2 通用对话框 389
10.2.1 通用对话框概述 389
10.2.2 使用通用对话框 390
10.3 公共控件 392
10.3.1 旋转按钮 392
10.3.2 滑块 395
10.3.3 进度条 397
10.3.4 标签 399
10.3.5 属性表 404
10.3.6 图像列表 406
10.3.7 列表视控件 409
10.3.8 树视控件 416
习题 419
第11章 Visual C++编程深入 423
11.1 ODBC数据库应用 423
11.1.1 ODBC概述 423
11.1.2 MFC ODBC数据库类 424
11.1.3 编程实现 425
11.2 异常处理 431
11.2.1 C++异常处理 431
11.2.2 Win32异常处理 434
11.2.3 MFC异常宏和异常类 437
11.2.4 MFC异常处理 439
11.3 动态链接库 442
11.3.1 动态链接库概述 442
11.3.2 创建动态链接库 443
11.3.3 使用动态链接库 446
11.4 多线程 449
11.4.1 进程和线程 449
11.4.2 工作线程 450
11.4.3 用户界面线程 455
习题 457
常用术语索引 459
参考文献 463