第1篇 Visual C++概述篇 2
第1章 Visual C++ 6.0集成开发环境概述 2
1.1 Visual C++概述 2
1.1.1 Visual C++的语言基础——C++语言 2
1.1.2 Visual C++的接口函数——Windows API 2
1.1.3 Visual C++的类库——MFC 3
1.2 Visual C++ 6.0集成开发环境概述 3
1.2.1 Visual C++ 6.0的安装 3
1.2.2 开发环境窗口介绍 6
1.3 Visual C++ 6.0界面概览 7
1.3.1 Visual C++ 6.0开发环境布局 7
1.3.2 Visual C++ 6.0菜单介绍 7
1.3.3 Visual C++ 6.0工具栏介绍 9
1.3.4 Visual C++ 6.0控件面板介绍 9
1.3.5 资源编辑器介绍 10
1.3.6 输出窗口介绍 10
1.4 Visual C++ 6.0开发步骤与环境设定 11
1.4.1 程序的开发步骤 11
1.4.2 开发环境的设定 11
1.5 程序设计入门实例——hello word! 13
1.6 上机实践 14
1.7 常见问题及解答 15
1.8 小结 15
1.9 习题 15
第2篇 C++语法篇 18
第2章 C++语言基础 18
2.1 面向对象程序设计概述 18
2.2 数据类型 19
2.2.1 常量与变量 19
2.2.2 简单类型 20
2.2.3 字符串常量 22
2.2.4 构造类型 22
2.2.5 文件类型 22
2.2.6 指针类型 22
2.3 数组 23
2.3.1 一维数组 23
2.3.2 二维数组 24
2.3.3 字符型数组 25
2.4 运算符 27
2.4.1 赋值运算符 27
2.4.2 算术运算符 27
2.4.3 逻辑运算符 27
2.4.4 关系运算符 28
2.4.5 位运算符 28
2.4.6 逗号运算符 28
2.5 表达式和语句 29
2.6 程序控制结构 29
2.6.1 顺序结构 29
2.6.2 选择结构 30
2.6.3 循环结构 33
2.7 C++的输入输出 35
2.8 编程实例与调试 36
2.8.1 代码编写 36
2.8.2 Visual C++项目文件介绍 36
2.8.3 调试与运行 37
2.9 本章实例——数据排序 37
2.10 上机实践 40
2.11 常见问题及解答 41
2.12 小结 42
2.13 习题 42
第3章 函数 43
3.1 概述 43
3.2 函数定义 43
3.2.1 函数定义的一般形式 43
3.2.2 函数参数 44
3.2.3 函数的返回值 46
3.3 函数的调用 46
3.3.1 函数调用的一般形式 46
3.3.2 函数的嵌套调用 47
3.3.3 函数的递归调用 48
3.4 函数应用实例与调试方法 48
3.4.1 函数应用实例的代码编写 48
3.4.2 断点跟踪调试 50
3.5 本章实例——汉诺塔游戏 52
3.6 上机实践 54
3.7 常见问题及解答 54
3.8 小结 55
3.9 习题 55
第4章 C++的面向对象编程 56
4.1 类和对象的基本概念 56
4.1.1 从结构到类 56
4.1.2 成员函数的定义 58
4.1.3 对象的定义与使用 59
4.1.4 对象的作用域 61
4.2 构造函数和析构函数 62
4.2.1 构造函数 62
4.2.2 默认参数的构造函数 63
4.2.3 析构函数 64
4.2.4 重载构造函数与拷贝构造函数 65
4.3 友元 67
4.3.1 友元函数 67
4.3.2 友元成员 68
4.3.3 友元类 69
4.4 派生类 69
4.4.1 派生类的引出 70
4.4.2 基类成员在派生类中访问属性 70
4.4.3 派生类对基类成员的访问规则 70
4.5 派生类的构造函数与析构函数 71
4.5.1 派生类构造函数和析构函数的执行顺序 71
4.5.2 派生类构造函数和析构函数的构造规则 73
4.6 继承与多重继承 73
4.6.1 继承和多重继承概述 73
4.6.2 多重继承的声明 73
4.6.3 虚基类 74
4.7 多态的基本概念 76
4.8 函数重载和运算符重载 76
4.8.1 函数重载 77
4.8.2 运算符重载 77
4.9 虚函数 78
4.10 本章实例——类的使用 79
4.11 上机实践 81
4.12 常见问题及解答 83
4.13 小结 83
4.14 习题 83
第5章 MFC与Windows编程基础 84
5.1 Microsoft类库介绍 84
5.2 MFC常见类介绍 85
5.2.1 CObject类 85
5.2.2 窗口类 85
5.2.3 文件类 85
5.2.4 网络类 86
5.2.5 ODBC类 87
5.2.6 辅助类 87
5.3 Windows编程基础知识 88
5.3.1 窗口 88
5.3.2 事件驱动 88
5.3.3 句柄和Windows消息 88
5.4 Windows应用程序的基本结构 90
5.5 上机实践 91
5.6 常见问题及解答 91
5.7 小结 92
5.8 习题 92
第3篇 可视化程序设计篇 94
第6章 对话框应用程序设计 94
6.1 创建对话框应用程序 94
6.2 对话框的操作 97
6.2.1 创建对话框 97
6.2.2 模态对话框的显示与关闭 99
6.2.3 非模态对话框的显示与关闭 101
6.2.4 设置对话框属性 104
6.3 对话框中控件的应用 104
6.3.1 添加控件 104
6.3.2 删除控件 105
6.3.3 设置控件属性 105
6.3.4 添加控件变量 106
6.4 添加数据成员和函数成员 107
6.4.1 添加数据成员 107
6.4.2 添加成员函数 107
6.4.3 添加消息处理函数 108
6.5 对话框程序分析 108
6.6 消息对话框 112
6.7 通用对话框 113
6.7.1 文件对话框 113
6.7.2 字体对话框 115
6.7.3 颜色对话框 116
6.7.4 查找与替换对话框 118
6.8 本章实例——计算器 120
6.9 上机实践 122
6.10 常见问题及解答 123
6.11 小结 123
6.12 习题 123
第7章 单文档和多文档 124
7.1 概述 124
7.1.1 单文档界面与多文档界面 124
7.1.2 文档/视图结构 124
7.2 创建文档/视图应用程序 125
7.2.1 创建单文档应用程序 125
7.2.2 单文档程序的消息传递过程 128
7.3 文档/视图结构应用程序分析 128
7.3.1 CWinApp类 128
7.3.2 CDocument类 129
7.3.3 CView类 129
7.3.4 CDocTemplate类 130
7.3.5 CFrameWnd类 131
7.4 SDI程序分析 131
7.4.1 基本概念的分析 131
7.4.2 理解应用程序 132
7.5 文档操作 137
7.5.1 串行化处理 138
7.5.2 消息映射 138
7.5.3 消息传递 139
7.6 SDI应用程序实例 139
7.7 MFC的集合类与字符串类 144
7.7.1 集合类介绍 144
7.7.2 CTypedPtrlist模板链表类 144
7.7.3 字符串类 146
7.8 MDI应用程序 147
7.8.1 MDI应用程序分析 147
7.8.2 MDI应用实例 148
7.9 上机实践 152
7.10 常见问题及解答 154
7.11 小结 155
7.12 习题 155
第8章 Windows标准控件的应用 156
8.1 概述 156
8.2 按钮控件 157
8.2.1 按钮控件的创建过程 158
8.2.2 按钮控件的使用 158
8.3 滚动条控件 159
8.3.1 滚动条的创建与初始化 159
8.3.2 滚动条控件的使用 160
8.4 静态文本控件 162
8.5 列表框控件 162
8.5.1 列表框控件的类 162
8.5.2 列表框的使用 164
8.6 列表视图和树视图控件 166
8.6.1 列表视图控件 166
8.6.2 列表视图控件的使用 167
8.6.3 树视图控件 167
8.6.4 树视图控件的使用 169
8.7 编辑框控件 171
8.7.1 编辑框类 171
8.7.2 编辑框的使用 173
8.8 组合框控件 174
8.8.1 组合框控件的类 174
8.8.2 组合框的属性设置 175
8.8.3 组合框与应用程序的消息传递 176
8.9 Tab属性页控件 176
8.9.1 Tab属性页控件的类及其属性 176
8.9.2 属性页应用实例 177
8.10 其他控件 179
8.10.1 进度条控件 179
8.10.2 滑块控件 179
8.10.3 IP Address控件 180
8.10.4 时间控件 180
8.10.5 应用实例 182
8.11 常见问题及解答 185
8.12 小结 185
8.13 习题 186
第9章 菜单、工具栏和状态栏设计 187
9.1 概述 187
9.2 菜单设计 187
9.2.1 菜单资源设计 188
9.2.2 菜单项的命令处理 189
9.2.3 菜单类介绍 192
9.2.4 设计弹出式菜单 193
9.2.5 对话框中菜单的使用 194
9.3 工具栏设计 197
9.3.1 工具栏资源设计 198
9.3.2 工具栏类与工具栏控制类 199
9.3.3 工具栏的命令处理 200
9.3.4 工具栏操作实例 200
9.4 状态栏设计 203
9.4.1 状态栏 203
9.4.2 状态栏操作实例 204
9.5 快捷键的设计 206
9.6 本章实例——单文档绘图 207
9.7 上机实践 209
9.8 常见问题及解答 211
9.9 小结 211
9.10 习题 211
第10章 Windows图形处理与文本输入输出 212
10.1 设备环境 212
10.1.1 设备环境类 212
10.1.2 映射模式 213
10.2 绘图工具与数据类型 214
10.2.1 画笔 214
10.2.2 画刷 216
10.2.3 绘图相关的数据类型 216
10.3 绘图实例 218
10.3.1 绘图函数介绍 218
10.3.2 图形的刷新与重绘 220
10.3.3 创建简单绘图程序 220
10.3.4 使用区域绘制图形 224
10.4 文本的设备环境 225
10.4.1 字体的结构 226
10.4.2 创建字体 226
10.5 文本输出 227
10.5.1 文本输出函数 227
10.5.2 文本格式 228
10.6 打印与打印预览 230
10.6.1 单页打印 230
10.6.2 多页打印 232
10.6.3 打印过程 234
10.7 上机实践 234
10.8 常见问题及解答 236
10.9 小结 236
10.10 习题 236
第4篇 Windows编程篇 238
第11章 文件操作 238
11.1 文件的输入输出 238
11.1.1 C++对文件操作的支持 238
11.1.2 文件的打开与关闭 238
11.1.3 文本文件的输入和输出 239
11.1.4 二进制文件的输入和输出 240
11.2 CFile类 241
11.2.1 CFile类介绍 241
11.2.2 CFile类使用 243
11.3 CFileFind类 243
11.3.1 CFileFind类介绍 244
11.3.2 CFileFind类使用 246
11.4 串行化操作与CFile类 248
11.4.1 CFile类与串行化 248
11.4.2 操作实例 248
11.5 本章实例——文件复制 251
11.6 上机实践 252
11.7 常见问题及解答 253
11.8 小结 254
11.9 习题 254
第12章 注册表与INI文件 255
12.1 注册表的基本知识 255
12.1.1 注册表的基本结构 255
12.1.2 注册表中的键值项数据 256
12.2 注册表类 257
12.2.1 CRegKey类 257
12.2.2 注册表数据的写入 259
12.2.3 注册表的查询 259
12.2.4 注册表的枚举 260
12.3 INI文件基本知识 261
12.4 INI文件操作函数 262
12.4.1 操作INI文件函数介绍 262
12.4.2 INI文件中键名数据的读写 263
12.4.3 节与键的枚举 264
12.5 本章实例——注册表与软件保护 266
12.6 上机实践 267
12.7 常见问题及解答 268
12.8 小结 268
12.9 习题 268
第13章 DLL动态链接库 269
13.1 动态链接库基本知识 269
13.2 创建动态链接库 270
13.2.1 创建MFC动态链接库 270
13.2.2 创建Win32动态链接库 271
13.3 动态链接库文件的创建与加载 273
13.3.1 动态链接库的入口函数 273
13.3.2 动态链接库中数据和函数的导出 273
13.3.3 动态链接库的加载 275
13.4 动态链接库应用实例 276
13.4.1 MFC动态链接库应用实例 276
13.4.2 Win32动态链接库应用实例 277
13.5 钩子函数 279
13.5.1 钩子技术介绍 279
13.5.2 钩子类型和范围 280
13.5.3 安装和解除钩子 280
13.6 本章实例——键盘钩子应用实例 281
13.7 上机实践 282
13.8 常见问题及解答 283
13.9 小结 284
13.10 习题 284
第14章 多线程编程 285
14.1 多任务、进程和线程 285
14.1.1 多任务介绍 285
14.1.2 进程 285
14.1.3 单线程与多线程 286
14.2 多线程技术 287
14.2.1 线程的创建与终止 287
14.2.2 线程的分类 287
14.2.3 进程的控制 287
14.3 多线程程序设计 288
14.3.1 创建线程 288
14.3.2 终止线程 289
14.3.3 线程间通信 289
14.4 线程同步 290
14.5 创建线程实例 292
14.6 本章实例——多线程 295
14.7 上机实践 300
14.8 常见问题及解答 301
14.9 小结 301
14.10 习题 302
第5篇 Visual C++开发篇 304
第15章 数据库应用程序设计 304
15.1 数据库概述 304
15.2 关系数据库原理 305
15.3 数据库标准语言——SQL语言 306
15.3.1 SQL概述 306
15.3.2 主要特点 306
15.3.3 数据定义语句 307
15.3.4 数据查询语句 309
15.3.5 数据更新语句 309
15.4 数据库设计方法 310
15.5 ODBC基础 311
15.6 ODBC数据库编程 313
15.6.1 ODBC类介绍 313
15.6.2 设置ODBC数据源 314
15.6.3 连接数据源 316
15.6.4 向数据表中添加记录、修改现有记录、删除指定记录 316
15.6.5 根据条件查询记录 321
15.7 ADO的概念 322
15.8 ADO数据库编程 323
15.8.1 导入ADO动态链接库 323
15.8.2 连接数据库 323
15.8.3 执行SQL语句 326
15.8.4 ADO的其他对象 326
15.9 本章实例——学籍管理 327
15.10 上机实践 329
15.11 常见问题及解答 330
15.12 小结 330
15.13 习题 330
第16章 网络编程 331
16.1 计算机网络基本知识 331
16.1.1 OSI模型 331
16.1.2 TCP/IP协议 332
16.1.3 TCP/IP协议核心 333
16.1.4 Windows Sockets基础 334
16.1.5 客户/服务器模式 335
16.2 使用Windows Socket开发应用程序 335
16.2.1 套接字(Socket)的引入 335
16.2.2 套接字的类型 336
16.2.3 基于TCP(面向连接)的Socket编程 336
16.2.4 基于UDP(面向无连接)的Socket编程 337
16.3 MFC对Socket的支持 339
16.4 基于WinInet类的应用程序设计 341
16.4.1 WinInet开发简介 341
16.4.2 CInternetSession类 341
16.4.3 CInternetConnection类 343
16.4.4 CInternetFile类 343
16.4.5 WinInet开发 343
16.5 本章实例——网络聊天工具 346
16.6 上机实践 352
16.7 常见问题及解答 353
16.8 小结 353
16.9 习题 354
第17章 多媒体编程 355
17.1 多媒体基础知识 355
17.1.1 Windows多媒体 355
17.1.2 音频介绍 355
17.1.3 视频介绍 356
17.1.4 图像介绍 356
17.2 利用音频函数实现多媒体程序 357
17.2.1 常用音频函数介绍 357
17.2.2 MCI介绍 358
17.2.3 应用实例 359
17.3 利用多媒体控件实现多媒体应用程序 361
17.4 常见图片的显示方法 363
17.4.1 位图资源 364
17.4.2 其他格式图片的显示 365
17.4.3 图片的显示 366
17.5 上机实践 368
17.6 常见问题及解答 369
17.7 小结 369
17.8 习题 369
第6篇 实例篇 372
第18章 图书管理系统的实现 372
18.1 概述 372
18.2 需求分析与系统设计 372
18.2.1 需求分析与可行性研究 373
18.2.2 系统设计分析 374
18.3 数据库设计 374
18.3.1 需求分析 374
18.3.2 概念设计 374
18.3.3 数据库构建 375
18.4 各模块设计 376
18.4.1 系统窗体模块组成 376
18.4.2 用户登录模块的实现 377
18.4.3 用户主界面的实现 379
18.4.4 书籍管理模块的实现 381
18.4.5 读者管理功能模块的实现 387
18.4.6 图书借阅和归还模块的实现 392
18.4.7 读者服务模块的实现 396
18.4.8 信息查询模块的实现 399
18.5 系统测试 402
18.5.1 测试策略分析 402
18.5.2 模块化测试 402
18.6 常见问题及解答 405
18.7 小结 405
18.8 习题 406
第19章 简单电子邮件的客户端实现 407
19.1 概述 407
19.2 电子邮件协议分析与系统设计 408
19.2.1 邮件的传输 408
19.2.2 SMTP协议分析 409
19.2.3 POP3协议分析 410
19.3 电子客户端系统设计分析 410
19.3.1 邮件的发送 411
19.3.2 邮件的接收 411
19.3.3 系统设计模型 411
19.4 各模块设计 412
19.4.1 JMail组件的使用 412
19.4.2 系统窗体组成 413
19.4.3 发信模块设计 414
19.4.4 收信模块设计 418
19.5 系统测试 422
19.5.1 系统测试分析 422
19.5.2 发信模块测试 423
19.5.3 收信模块测试 424
19.6 常见问题及解答 425
19.7 小结 425
19.8 习题 425
第20章 媒体播放器的实现 426
20.1 概述 426
20.2 系统设计 427
20.2.1 ActiveMovie控件 427
20.2.2 界面设计 428
20.3 系统实现 429
20.4 测试与分析 438
20.4.1 音频播放测试 438
20.4.2 视频播放测试 438
20.5 常见问题及解答 439
20.6 小结 440
20.7 习题 440