第一篇 Visual C++基础 28
第1章 Visual C++集成开发环境 28
1.1 Visual C++的版本 28
1.2 安装Visual C++ 6.0 29
1.3 Visual C++集成开发环境 32
1.3.1 菜单栏 33
1.3.2 工具栏 37
1.3.3 工作区窗口 39
1.3.4 输出窗口 40
1.4 编写第一个程序Hello World 40
1.4.1 创建Hello World工程 41
1.4.2 编译并执行程序 42
1.5 小结 42
第2章 使用Visual C++创建基本应用程序 43
2.1 理解Visual C++工程 43
2.2 Visual C++中应用程序的类型 44
2.2.1 控制台应用程序 44
2.2.2 基于对话框的应用程序 45
2.2.3 单文档应用程序 45
2.2.4 多文档应用程序 45
2.2.5 基于HTML文档的应用程序 45
2.3 创建应用程序框架 46
2.3.1 创建基于对话框的应用程序 46
2.3.2 创建单文档应用程序 47
2.3.3 创建多文档应用程序 49
2.3.4 创建基于HTML的应用程序 50
2.4 小结 51
第3章 面向对象程序设计基础 52
3.1 面向过程与面向对象 52
3.1.1 面向过程的问题 52
3.1.2 面向对象的特性 53
3.2 C++类的基本概念 53
3.2.1 结构体与类 53
3.2.2 类与对象 55
3.2.3 类的声明、定义和实现 55
3.2.4 成员变量 57
3.2.5 成员函数 58
3.2.6 静态成员 60
3.2.7 this指针 61
3.3 构造函数 63
3.3.1 使用构造函数的原因 63
3.3.2 构造函数的使用 63
3.3.3 重载构造函数 66
3.3.4 析构函数 67
3.4 继承 69
3.4.1 继承的概念 69
3.4.2 继承的工作机制 69
3.4.3 公有继承 70
3.4.4 私有继承 72
3.4.5 保护继承 73
3.4.6 多重继承 75
3.5 异常处理 77
3.5.1 异常的概念 77
3.5.2 异常处理机制 77
3.5.3 基本异常处理方法 78
3.5.4 多个异常处理方法 80
3.6 小结 82
第4章 Visual C++调试技术 83
4.1 Debug与Release 83
4.2 调试的过程 84
4.2.1 设置断点 84
4.2.2 控制程序的运行 86
4.3 使用查看工具 86
4.3.1 弹出式调试信息泡泡 87
4.3.2 变量窗口 87
4.3.3 观察窗口 87
4.3.4 快速查看窗口 88
4.3.5 内存查看窗口 88
4.3.6 寄存器窗口 88
4.3.7 调用堆栈窗口 89
4.4 其他调试技术 89
4.4.1 TRACE宏 89
4.4.2 ASSERT宏 90
4.4.3 VERIFY宏 90
4.5 小结 90
第二篇 Windows编程 92
第5章 Windows程序设计 92
5.1 Windows编程简介 92
5.1.1 Windows API概述 92
5.1.2 Windows应用程序中的常用术语 95
5.2 Windows应用程序运行机制 97
5.2.1 生成Windows应用程序框架 97
5.2.2 在Windows应用程序中添加代码 97
5.2.3 编译并执行程序 100
5.3 程序入口:WinMain()函数 100
5.3.1 WinMain()函数的定义 101
5.3.2 定义和注册窗口类 102
5.3.3 创建窗口 103
5.3.4 显示和更新窗口 104
5.3.5 消息循环 104
5.4 窗口过程函数和消息处理 106
5.4.1 窗口过程函数 106
5.4.2 常用消息的处理 108
5.5 小结 110
第6章 MFC编程概述 111
6.1 MFC概述 111
6.1.1 MFC设计原理 111
6.1.2 MFC特点 112
6.1.3 MFC App Wizard向导 112
6.2 MFC层次结构设计 114
6.2.1 单文档应用程序的构成 114
6.2.2 CObject类 116
6.2.3 CCmdTrget类 116
6.2.4 应用和线程类 117
6.2.5 窗口类 117
6.2.6 文档视图类 118
6.3 MFC框架程序分析 118
6.3.1 theApp全局对象 119
6.3.2 WinMain()函数 121
6.3.3 AfxWinInit()函数 122
6.3.4 InitApplication()函数 123
6.3.5 InitInstance()函数 124
6.3.6 LoadFrame()函数 128
6.3.7 Run()函数 131
6.3.8 终止应用程序 133
6.4 小结 133
第7章 MFC消息映射与消息传递机制 134
7.1 消息概述 134
7.1.1 队列消息和非队列消息 134
7.1.2 系统消息和应用程序消息 135
7.1.3 窗口消息、命令消息和控件通知 135
7.2 MFC消息映射机制 136
7.2.1 MFC消息处理 137
7.2.2 一个应用程序的消息映射分析 137
7.2.3 MFC消息映射的实现方法 139
7.2.4 消息映射宏的种类 142
7.3 小结 143
第8章 图形编程 144
8.1 绘制图形的相关知识 144
8.1.1 图形设备接口 144
8.1.2 逻辑空间和设备空间 145
8.1.3 设备环境 145
8.1.4 一个简单的图形程序 145
8.2 设备环境的相关类 147
8.2.1 CDC类 147
8.2.2 CPaintDC类 149
8.2.3 CClientDC类 151
8.2.4 CWindowDC类 152
8.3 GDI对象 153
8.3.1 GDI对象的种类 153
8.3.2 GDI对象的生命周期 153
8.4 绘制图形 155
8.4.1 绘制线条 156
8.4.2 绘制矩形 157
8.4.3 绘制椭圆 158
8.4.4 其他绘图方式 159
8.5 映射模式 162
8.5.1 坐标转换 162
8.5.2 映射模式 166
8.6 文本编程 168
8.6.1 插入符 168
8.6.2 文本的输入与显示 170
8.7 滚动视窗 175
8.7.1 滚动条 175
8.7.2 滚动视窗应用实例 176
8.8 小结 180
第9章 位图编程 181
9.1 位图的种类 181
9.2 位图的显示 182
9.2.1 创建位图对象 182
9.2.2 加载和设置位图内容 183
9.2.3 显示位图 185
9.2.4 创建一个动画实例 186
9.3 调色板 190
9.3.1 调色板的种类 190
9.3.2 调色板的操作 190
9.3.3 调色板的事件 192
9.4 设备无关类位图 193
9.4.1 BMP图像文件的结构 193
9.4.2 位图操作 195
9.4.3 CImage类 198
9.5 小结 200
第10章 对话框 201
10.1 控件 201
10.1.1 常用控件介绍 201
10.1.2 控件的创建 202
10.1.3 控件的消息 204
10.2 对话框的创建 207
10.2.1 模态对话框的创建 207
10.2.2 非模态对话框的创建 210
10.3 对话框数据交换和验证 212
10.3.1 数据交换 212
10.3.2 数据验证 215
10.3.3 创建一个图形显示实例 216
10.4 树形视图和列表视图控件 219
10.4.1 树形视图控件 219
10.4.2 列表视图控件 221
10.4.3 创建一个通讯录实例 224
10.5 属性表单和向导的创建 227
10.5.1 创建属性页 227
10.5.2 创建属性表单 229
10.5.3 创建向导 231
10.5.4 创建一个可动态添加记录的通讯录 235
10.6 小结 239
第11章 应用程序界面的定制 240
11.1 自定义应用程序的窗口界面 240
11.2 菜单 243
11.2.1 菜单的创建 243
11.2.2 MFC中的菜单消息 244
11.2.3 快捷菜单 246
11.2.4 动态更改菜单 248
11.2.5 手工添加菜单的消息响应 251
11.3 工具栏 252
11.3.1 在工具栏上更改按钮 253
11.3.2 创建和初始化工具栏 253
11.4 状态栏 256
11.4.1 状态栏的创建 256
11.4.2 在状态栏上显示系统时间 258
11.5 小结 260
第12章 文件操作 261
12.1 API文件操作 261
12.1.1 文件的创建和打开 261
12.1.2 文件的读写 262
12.1.3 文件的读写实例 264
12.1.4 其他文件操作 266
12.2 MFC文件操作 267
12.2.1 CFile类简介 267
12.2.2 文件的读写 269
12.2.3 CFileDialog类 270
12.2.4 其他文件操作 273
12.3 小结 275
第13章 文档、视图和框架 276
13.1 文档/视图简介 276
13.1.1 文档/视图的基本概念 276
13.1.2 两类文档/视图结构分析 277
13.2 框架 281
13.2.1 框架窗口的组成 281
13.2.2 多文档框架类中的常用函数 284
13.3 文档 286
13.3.1 对视图的管理 286
13.3.2 新建或打开文档 288
13.3.3 文档的保存和关闭 290
13.4 视图 290
13.4.1 CView类 291
13.4.2 视图对象的创建 293
13.5 分割式窗口 295
13.5.1 创建静态分割窗口 296
13.5.2 创建动态分割窗口 300
13.6 文档与串行化 302
13.6.1 CArchive类和CFile类 302
13.6.2 文档串行化 304
13.6.3 类串行化 305
13.6.4 串行化实例 306
13.7 小结 310
第14章 进程和线程 311
14.1 进程和线程的基本概念 311
14.1.1 进程 311
14.1.2 线程 313
14.2 Win32的进程处理 313
14.2.1 进程的创建和终止 313
14.2.2 进程的终止 315
14.2.3 进程信息的获取 315
14.2.4 子进程的创建 317
14.3 Win32的线程处理 319
14.3.1 线程的创建 319
14.3.2 线程的终止 320
14.3.3 线程的优先级别 320
14.3.4 多线程实例 321
14.4 MFC的线程处理 327
14.4.1 线程的创建与终止 328
14.4.2 线程的消息循环 330
14.5 线程同步 331
14.5.1 同步对象 332
14.5.2 多个同步对象的应用 337
14.6 小结 340
第三篇 数据库编程 342
第15章 Visual C++数据库开发技术概述 342
15.1 Visual C++数据库开发特点 342
15.2 Visual C++中的数据库开发技术 343
15.2.1 ODBC API技术 343
15.2.2 MFC ODBC技术 343
15.2.3 DAO技术 343
15.2.4 OLE DB技术 343
15.2.5 ADO技术 344
15.3 小结 344
第16章 ODBC API编程 345
16.1 ODBC简介 345
16.2 使用ODBC API进行数据库开发 345
16.2.1 创建ODBC数据源 346
16.2.2 分配环境句柄 347
16.2.3 分配连接句柄 347
16.2.4 使用SQL Connect连接数据源 348
16.2.5 使用SQLDriveConnect连接数据源 349
16.2.6 使用SQLBrowseConnect连接数据源 351
16.2.7 准备并执行SQL操作 353
16.2.8 获取结果集 353
16.2.9 断开数据源连接并释放环境句柄 355
16.3 使用ODBC API实现通讯录 355
16.3.1 数据库设计 355
16.3.2 添加数据源 356
16.3.3 界面设计 356
16.3.4 创建工程 356
16.3.5 添加类 357
16.3.6 创建数据库操作类 359
16.3.7 系统主界面 362
16.3.8 显示联系人信息 364
16.3.9 删除联系人信息 365
16.3.10 添加联系人信息 366
16.3.11 修改联系人信息 367
16.4 小结 367
第17章 MFC ODBC编程 368
17.1 MFC ODBC简介 368
17.2 CDatabase类 368
17.2.1 连接数据源 369
17.2.2 执行SQL语句 370
17.2.3 事务处理 370
17.2.4 断开数据源连接 371
17.3 CRecordSet类 371
17.3.1 记录集的分类 371
17.3.2 记录字段交换(RFX) 372
17.3.3 创建记录集类 372
17.3.4 记录集类成员变量 373
17.3.5 打开、关闭记录集 374
17.3.6 在记录集中滚动 374