第一篇 基础篇 2
第1章 Visual C++集成开发环境 2
1.1 Visual C++ 6.0概述 2
1.2 安装Visual C++ 6.0集成开发环境 2
1.3 Visual C++ 6.0界面介绍 5
1.3.1 工作区窗口和输出窗口 6
1.3.2 菜单栏和工具栏 7
1.3.3 编辑区 7
1.3.4 联机帮助 8
1.3.5 第一个程序 8
1.3.6 Visual C++中的文件扩展名 9
1.4 小结 10
第2章 MFC与应用程序框架 11
2.1 微软基础类库MFC 11
2.1.1 MFC概述 11
2.1.2 MFC类库结构 11
2.2 MFC应用程序框架分析 12
2.2.1 入口函数 12
2.2.2 InitInstance()函数 14
2.2.3 应用类Run()函数 15
2.2.4 消息映射表 16
2.2.5 MFC消息分类 16
2.3 小结 17
第3章 C++语言基础 18
3.1 一个简单的C++程序 18
3.1.1 创建一个空的工程 18
3.1.2 添加C++源文件 19
3.1.3 添加代码 20
3.1.4 编译并运行程序 21
3.2 C++的基本数据类型及数据 21
3.2.1 基本数据类型 21
3.2.2 变量 22
3.2.3 常量 23
3.3 C++的表达式及运算符 23
3.3.1 表达式 24
3.3.2 运算符 24
3.3.3 运算符的优先级 26
3.4 C++的语句控制 28
3.4.1 C++的输入输出 28
3.4.2 选择语句 29
3.4.3 循环语句 33
3.4.4 其他语句 36
3.5 小结 37
第4章 C++的面向对象 38
4.1 类与对象 38
4.1.1 面向对象思想 38
4.1.2 类的声明 39
4.1.3 成员函数的定义 40
4.1.4 类与对象的关系 40
4.1.5 对象的声明和实例化 40
4.1.6 构造函数和析构函数 41
4.2 C++类的继承和派生 43
4.2.1 派生类的声明 43
4.2.2 派生类的继承方式 44
4.2.3 单一继承和多重继承 46
4.3 C++的多态性 47
4.3.1 多态的分类 47
4.3.2 运算符重载 47
4.3.3 虚函数 48
4.3.4 纯虚函数 49
4.4 小结 50
第5章 菜单栏、工具栏和状态栏 51
5.1 菜单的分类 51
5.2 使用下拉式菜单 52
5.2.1 创建下拉式菜单 52
5.2.2 添加菜单项 53
5.2.3 移动和删除菜单项 55
5.2.4 添加一个菜单命令处理函数 56
5.2.5 启用和禁用菜单项 57
5.2.6 标记菜单项 57
5.2.7 添加快捷键 58
5.3 使用弹出式菜单 59
5.4 工具栏的使用 61
5.4.1 为默认工具栏添加按钮 61
5.4.2 移动和删除工具栏按钮 62
5.4.3 添加按钮消息响应函数 62
5.4.4 为工具栏按钮添加提示文字 63
5.4.5 禁用或启用工具栏按钮 63
5.5 状态栏的使用 63
5.5.1 状态栏概述 64
5.5.2 修改默认的状态栏 64
5.6 小结 65
第6章 窗口 66
6.1 消息窗口 66
6.2 窗口的创建与使用 67
6.2.1 窗口的分类 67
6.2.2 创建模态窗口 68
6.2.3 创建窗口类 70
6.2.4 向程序中添加代码 73
6.2.5 消息响应函数 74
6.3 非模态窗口 75
6.3.1 创建工程并添加窗口 76
6.3.2 添加窗口类 76
6.3.3 修改菜单栏并添加菜单消息响应函数 77
6.3.4 添加代码 77
6.3.5 运行程序 79
6.4 通用窗口 79
6.4.1 文件窗口 79
6.4.2 颜色窗口 81
6.4.3 字体窗口 81
6.4.4 查找和替换窗口 82
6.4.5 打印窗口 83
6.5 小结 84
第7章 控件 85
7.1 Visual C++中的标准控件 85
7.1.1 控件概述 85
7.1.2 创建控件 85
7.2 按钮控件 87
7.2.1 单选按钮 87
7.2.2 复选框 89
7.3 静态控件 90
7.3.1 静态文本 91
7.3.2 图片 91
7.3.3 分组框 92
7.4 列表框控件与组合框控件 92
7.4.1 列表框 92
7.4.2 组合框 97
7.5 树形控件与列表视图控件 100
7.5.1 树形控件 100
7.5.2 列表视图控件 104
7.6 滑块控件与进度条控件 108
7.6.1 滑块控件 108
7.6.2 进度条控件 109
7.7 小结 111
第8章 MFC常用类 112
8.1 字符串类 112
8.1.1 创建字符串对象 112
8.1.2 CString类的成员函数 112
8.1.3 字符串的大小写转换 113
8.1.4 字符串的连接 114
8.1.5 字符串的比较 115
8.1.6 字符串的提取 116
8.1.7 字符串的查找 117
8.1.8 字符串的移除 118
8.1.9 CString类的格式化 119
8.1.10 CString类的类型转换 119
8.2 日期、时间类 120
8.2.1 CTime类 120
8.2.2 CTimeSpan类 121
8.2.3 计时器 123
8.3 文件操作类 125
8.3.1 文件的打开和关闭 125
8.3.2 文件的读写 128
8.3.3 文件的定位 129
8.3.4 文件的状态 129
8.4 异常类 130
8.4.1 异常类简介 130
8.4.2 文件异常操作 131
8.4.3 捕获异常 132
8.5 小结 133
第9章 多媒体技术 134
9.1 图像处理技术 134
9.1.1 BMP文件结构 134
9.1.2 在程序中显示BMP文件 136
9.1.3 在程序中显示JPEG和GIF文件 137
9.2 音频媒体 142
9.2.1 播放WAVE资源 142
9.2.2 播放WAVE文件 144
9.2.3 音量控制实现原理 145
9.2.4 音量调节器实例 146
9.3 视频媒体 151
9.3.1 播放AVI文件 151
9.3.2 播放Flash文件 155
9.4 小结 158
第10章 DLL的开发与调用 159
10.1 DLL的基础知识 159
10.1.1 DLL与LIB 159
10.1.2 DLL与EXE 160
10.1.3 Visual C++ 6.0中可实现的DLL 161
10.1.4 DLL的动态链接方法 162
10.1.5 DLL文件构成 163
10.2 Win32 DLL的开发与动态链接 163
10.2.1 开发导出函数的Win32 DLL 163
10.2.2 从DLL中导出函数 165
10.2.3 运行时动态链接DLL 166
10.2.4 加载时动态链接DLL 168
10.2.5 调试DLL程序 170
10.2.6 使用Depends工具查看DLL的信息 172
10.2.7 创建导出类的Win32 DLL 173
10.2.8 链接DLL的导出类 175
10.3 MFC常规DLL的开发与链接 176
10.3.1 开发使用MFC类库的MFC常规DLL 176
10.3.2 DLL的入/出口函数 178
10.3.3 链接MFC常规DLL 178
10.4 MFC扩展DLL的开发与链接 180
10.4.1 开发扩展MFC类的MFC扩展DLL 180
10.4.2 链接MFC扩展DLL 184
10.5 小结 186
第11章 文档和视图 187
11.1 文档/视图结构简介 187
11.1.1 文档/视图结构概述 187
11.1.2 文档/视图结构分类 188
11.2 文档/视图结构应用程序框架分析 189
11.2.1 创建单文档应用程序框架 189
11.2.2 单文档应用程序的执行过程 193
11.2.3 程序框架中的主要类及相互关系 193
11.2.4 多文档应用程序框架 194
11.3 切分窗口与多视 195
11.3.1 动态切分窗口 196
11.3.2 静态切分窗口 197
11.3.3 一档多视 199
11.4 在视图窗口中显示网页 200
11.5 小结 203
第12章 数据库编程 204
12.1 数据库基础 204
12.2 安装SQL Server 2000 205
12.3 使用SQL Server 2000 207
12.4 结构化查询语言 210
12.4.1 SQL语言的分类 210
12.4.2 SQL语言的数据类型 210
12.4.3 SQL语句 211
12.5 数据库开发技术简介 213
12.5.1 ODBC技术 213
12.5.2 DAO技术 214
12.5.3 ADO技术 214
12.6 ODBC数据库编程 215
12.6.1 设置ODBC数据源 215
12.6.2 连接数据库 216
12.6.3 记录集的建立和关闭 218
12.6.4 添加、删除和修改记录 220
12.7 使用ADO操作数据库 222
12.7.1 ADO基础 222
12.7.2 ADO编程方法 222
12.8 使用ADO操作数据库实例 227
12.8.1 CDatabaseAccess类 227
12.8.2 示例 235
12.9 小结 238
第13章 多线程编程 239
13.1 进程与线程 239
13.2 线程的分类 239
13.3 线程类 240
13.4 线程的使用 241
13.4.1 启用用户界面线程 242
13.4.2 启用工作者线程 242
13.4.3 用户界面线程 243
13.4.4 工作者线程 246
13.5 线程的终止 248
13.5.1 正常终止线程 248
13.5.2 异常终止线程 248
13.5.3 线程的退出码 249
13.6 线程的通信 250
13.6.1 通信原理 250
13.6.2 用户界面线程通信 251
13.7 线程的同步 254
13.7.1 同步访问对象 254
13.7.2 使用信号量实现线程同步 256
13.7.3 使用临界区对象实现线程同步 257
13.7.4 使用互斥量对象实现线程同步 261
13.7.5 使用事件对象实现线程同步 263
13.8 小结 265
第14章 WinSock网络通信开发 266
14.1 网络通信与WinSock基础 266
14.1.1 WinSock的基本概念 266
14.1.2 TCP/IP协议与WinSock 266
14.1.3 WinSock通信与C/S结构 267
14.1.4 MFC中WinSock的封装类 268
14.1.5 WinSock网络编程的常用术语 270
14.2 无连接通信开发 270
14.2.1 Socket无连接通信机制 270
14.2.2 主要功能函数介绍 272
14.2.3 无连接通信接收端的实现 274
14.2.4 无连接通信发送端的实现 277
14.3 面向连接通信开发 278
14.3.1 Socket面向连接通信机制 279
14.3.2 主要功能函数 280
14.3.3 面向连接通信服务器端的实现 281
14.3.4 面向连接通信客户端的实现 283
14.4 Socket非阻塞模式及开发 286
14.4.1 CSocket阻塞模式 286
14.4.2 CSocket非阻塞模式——事件处理 287
14.4.3 非阻塞模式服务器端的实现 288
14.4.4 非阻塞模式客户端的实现 291
14.5 小结 295
第二篇 实例篇 298
第15章 人事管理系统 298
15.1 应用背景 298
15.2 系统设计 298
15.2.1 模块设计 298
15.2.2 程序分析 299
15.3 数据库设计 300
15.3.1 设计表 300
15.3.2 设计触发器 304
15.4 代码实现 307
15.4.1 准备工作 307
15.4.2 登录模块 308
15.4.3 文档模块 312
15.4.4 左窗口类 315
15.4.5 右窗口类 321
15.4.6 人员档案管理模块 322
15.4.7 其他模块 327
15.4.8 最后的修改 330
15.5 小结 331
第16章 图书信息管理系统 332
16.1 应用背景 332
16.2 系统设计 332
16.2.1 模块设计 332
16.2.2 程序分析 333
16.3 数据库设计 334
16.3.1 设计表 334
16.3.2 设计触发器 335
16.4 代码实现 336
16.4.1 准备工作 336
16.4.2 登录模块 337
16.4.3 文档模块 341
16.4.4 用户管理模块 342
16.4.5 图书信息管理 351
16.4.6 图书借阅管理 359
16.4.7 最后的修改 364
16.5 小结 365
附录A 常见C++函数参考 366
附录B 调试技术 374