第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.4 公共控件 289
7.4.1 旋转按钮 290
7.4.2 滑块 292
7.4.3 进度条 295
7.4.4 标签 297
习题 302
第8章 MFC原理与方法 307
8.1 Windows编程基础 307
8.1.1 Windows编程特点 307
8.1.2 应用程序编程接口(API) 308
8.1.3 Windows消息 314
8.1.4 句柄 316
8.2 微软基础类(MFC) 317
8.2.1 MFC概述 318
8.2.2 MFC体系结构 319
8.2.3 学习MFC的方法 321
8.3 MFC应用程序框架 322
8.3.1 应用程序框架中的对象 322
8.3.2 MFC应用程序的生存与消亡 323
8.3.3 常用的MFC文件 326
8.4 MFC消息管理 329
8.4.1 MFC消息映射机制 329
8.4.2 消息的发送 331
8.4.3 自定义消息处理 332
8.5 MFC宏 335
8.5.1 常用的MFC宏 336
8.5.2 运行时类型识别和动态创建 337
8.5.3 MFC调试宏 339
习题 340
第9章 图形绘制 345
9.1 图形设备接口 345
9.1.1 概述 345
9.1.2 设备环境 346
9.1.3 GDI坐标系和映射模式 348
9.1.4 颜色的设置 354
9.2 画笔和画刷 355
9.2.1 GDI对象 355
9.2.2 使用画笔 356
9.2.3 使用画刷 360
9.2.4 使用GDI堆对象 361
9.2.5 基本几何图形的绘制 363
9.3 文本与字体 365
9.3.1 绘制文本 365
9.3.2 字体概述 367
9.3.3 创建字体 368
习题 373
第10章 Visual C++编程深入 377
10.1 异常处理 377
10.1.1 C++异常处理 377
10.1.2 Win32异常处理 380
10.1.3 MFC异常宏和异常类 383
10.1.4 MFC异常处理 385
10.2 动态链接库 388
10.2.1 动态链接库概述 388
10.2.2 创建动态链接库 389
10.2.3 使用动态链接库 392
10.3 非模态对话框 395
10.3.1 模态对话框与非模态对话框 395
10.3.2 非模态对话框工作流程 395
习题 400
常用术语索引 403
参考文献 407