第1篇 基础知识 3
第1章 Visual C++ 6.0集成开发环境 3
教学录像:29分钟 4
1.1 Visual C++ 6.0概述 4
1.2 Visual C++ 6.0开发环境介绍 4
1.2.1 熟悉Visual C++ 6.0 IDE开发环境 4
1.2.2 Visual C++ 6.0 IDE菜单介绍 5
1.2.3 Visual C++ 6.0 IDE工具栏介绍 10
1.2.4 Visual C++ 6.0工作区窗口介绍 12
1.2.5 Visual C++ 6.0控件面板介绍 13
1.2.6 Visual C++ 6.0输出窗口介绍 14
1.3 设置自己的开发环境 15
1.3.1 自定义工具栏 15
1.3.2 自定义代码编辑窗口 16
1.4 创建一个简单的程序 17
1.4.1 创建工程 17
1.4.2 编辑程序 20
1.5 小结 20
第2章 C++语言基础 21
教学录像:52分钟 22
2.1 C++文件结构 22
2.1.1 头文件的构成 22
2.1.2 源文件的构成 22
2.2 C++语言基本要素 23
2.2.1 标识符 23
2.2.2 关键字 23
2.2.3 常量 24
2.2.4 变量 25
2.2.5 变量的存储类型 27
2.3 数据类型 29
2.3.1 数值类型 29
2.3.2 字符类型 30
2.3.3 数组类型 30
2.3.4 枚举类型 32
2.3.5 布尔类型 33
2.3.6 结构体类型 34
2.3.7 共用体类型 37
2.3.8 pair类型 37
2.3.9 指针类型 38
2.3.10 引用类型 41
2.3.11 自定义类型 42
2.4 运算符 43
2.4.1 赋值运算符 43
2.4.2 算术运算符 44
2.4.3 关系运算符 45
2.4.4 逻辑运算符 46
2.4.5 自增自减运算符 47
2.4.6 位运算符 48
2.4.7 sizeof运算符 51
2.4.8 new和delete运算符 52
2.4.9 结合性与优先级 53
2.5 表达式 54
2.5.1 逗号表达式 55
2.5.2 三目元表达式 55
2.6 程序编码规范 56
2.6.1 合理使用注释 56
2.6.2 统一代码缩进 58
2.6.3 代码换行 58
2.6.4 合理使用空格 59
2.6.5 命名规则 60
2.7 小结 61
2.8 实践与练习 61
第3章 语句 63
教学录像:26分钟 64
3.1 语句的构成 64
3.2 复合语句 64
3.3 分支语句 66
3.3.1 if语句 66
3.3.2 switch语句 68
3.4 循环语句 70
3.4.1 for语句 71
3.4.2 while语句 74
3.4.3 do while语句 74
3.4.4 嵌套循环语句 75
3.5 跳转语句 75
3.5.1 goto语句 75
3.5.2 return语句 77
3.5.3 exit语句 78
3.6 小结 78
3.7 实践与练习 79
第4章 面向过程程序设计 81
教学录像:30分钟 82
4.1 函数 82
4.1.1 定义和调用函数 82
4.1.2 设置默认值参数 85
4.1.3 设置数组参数 86
4.1.4 设置指针/引用参数 88
4.1.5 省略号参数 91
4.1.6 内联函数 92
4.1.7 链接指示符extern“C” 92
4.1.8 重载函数 94
4.1.9 函数递归调用 97
4.1.10 函数指针 98
4.2 作用域和生命期 100
4.2.1 局部作用域 100
4.2.2 全局作用域 102
4.2.3 定义和使用命名空间 103
4.3 函数模板 107
4.3.1 定义和使用函数模板 108
4.3.2 重载函数模板 109
4.4 小结 110
4.5 实践与练习 110
第5章 面向对象程序设计 111
教学录像:44分钟 112
5.1 类和对象 112
5.1.1 类的定义 112
5.1.2 类成员的访问 114
5.1.3 构造函数和析构函数 116
5.1.4 内联成员函数 121
5.1.5 静态类成员 123
5.1.6 隐藏的this指针 126
5.1.7 运算符重载 127
5.1.8 友元类和友元方法 131
5.1.9 类的继承 134
5.1.10 类域 145
5.1.11 嵌套类 146
5.1.12 局部类 147
5.2 类模板 148
5.2.1 类模板的定义及应用 148
5.2.2 定义类模板的静态数据成员 153
5.3 异常处理 154
5.3.1 异常捕捉语句 154
5.3.2 抛出异常 155
5.4 小结 157
5.5 实践与练习 157
第2篇 核心技术 161
第6章 对话框应用程序设计 161
教学录像:55分钟 162
6.1 构建对话框应用程序 162
6.2 对话框的创建及显示 163
6.2.1 创建对话框 163
6.2.2 显示对话框 164
6.3 对话框属性设置 165
6.3.1 设置对话框的标题 165
6.3.2 设置对话框的边框风格 166
6.4 在对话框中操作控件 166
6.4.1 在对话框中使用控件 166
6.4.2 控件对齐方式 167
6.4.3 为控件关联变量 169
6.5 添加对话框成员及成员函数 170
6.5.1 添加普通成员及成员函数 170
6.5.2 添加消息处理函数 171
6.5.3 手动添加命令消息处理函数 172
6.6 消息对话框 173
6.7 Windows通用对话框 174
6.7.1 使用“文件”对话框打开和保存文件 174
6.7.2 使用“字体”对话框设置文本字体 177
6.7.3 使用“颜色”对话框设置文本背景颜色 178
6.7.4 使用“查找/替换”对话框在文本中替换字符串 179
6.7.5 使用“打印”对话框进行打印 182
6.7.6 使用“文件浏览”对话框选择文件夹 185
6.8 小结 186
6.9 实践与练习 186
第7章 文档/视图程序设计 187
教学录像:30分钟 188
7.1 构建文档/视图应用程序 188
7.1.1 构建单文档/视图应用程序 188
7.1.2 构建多文档/视图应用程序 190
7.2 绘制视图背景 191
7.3 文档/视图结构的消息处理 192
7.4 视图分割 193
7.4.1 简单视图分割 193
7.4.2 划分任意子窗口 194
7.4.3 在子窗口中嵌入控件 196
7.5 视图窗口高级应用 197
7.5.1 在视图窗口中实现数据拖动 197
7.5.2 在视图窗口中浏览网页 200
7.6 小结 202
7.7 实践与练习 202
第8章 常用控件 203
教学录像:48分钟 204
8.1 静态文本控件 204
8.1.1 设置显示文本 204
8.1.2 设置文本颜色 205
8.1.3 模拟按钮控件的单击事件 205
8.2 编辑框控件 206
8.2.1 设置密码编辑框 206
8.2.2 设置只读编辑框 206
8.2.3 设置编辑框多行显示 206
8.2.4 设置编辑框按回车键换行 207
8.2.5 使用编辑框控件录入数据 207
8.3 图像控件 207
8.3.1 通过属性显示位图 208
8.3.2 设置边框颜色和填充颜色 208
8.4 按钮控件 208
8.4.1 使用按钮显示图标 208
8.4.2 使用按钮控件处理用户操作 209
8.5 复选框控件 209
8.5.1 设置复选框控件的选中状态 209
8.5.2 使用复选框控件统计信息 210
8.6 单选按钮控件 211
8.6.1 为单选按钮控件分组 212
8.6.2 获得被选择的单选按钮的文本 212
8.7 组合框控件 213
8.7.1 设置控件风格 213
8.7.2 调整列表部分的显示大小 213
8.7.3 通过属性插入数据 214
8.7.4 调整数据显示顺序 214
8.7.5 获得选择的数据 214
8.8 列表框控件 215
8.8.1 在指定位置插入文本 216
8.8.2 避免插入重复数据 217
8.8.3 实现复选数据功能 218
8.9 进度条控件 219
8.9.1 设置显示风格 219
8.9.2 设置进度条的范围 219
8.10 小结 220
8.11 实践与练习 220
第9章 菜单 221
教学录像:24分钟 222
9.1 菜单资源设计 222
9.2 菜单项的命令处理 224
9.3 动态创建菜单 225
9.4 创建弹出式菜单 227
9.5 创建图标菜单 229
9.6 小结 235
9.7 实践与练习 235
第10章 工具栏和状态栏 237
教学录像:23分钟 238
10.1 工具栏设计 238
10.1.1 工具栏资源设计 238
10.1.2 工具栏的命令处理 239
10.1.3 动态创建工具栏 240
10.1.4 设置工具栏按钮提示 244
10.1.5 设计XP风格工具栏 246
10.2 状态栏设计 249
10.2.1 创建状态栏 249
10.2.2 在状态栏中显示控件 251
10.3 小结 252
10.4 实践与练习 252
第11章 高级控件 253
教学录像:45分钟 254
11.1 图像列表控件 254
11.1.1 创建图像列表 254
11.1.2 将图像绘制到程序中 255
11.2 列表视图控件 256
11.2.1 设置显示风格 256
11.2.2 设计登录窗口 256
11.2.3 将数据加载到列表 258
11.2.4 具有位图背景的控件 261
11.2.5 动态创建列表视图控件 262
11.3 树控件 264
11.3.1 动态创建树控件 264
11.3.2 带复选功能的树控件 267
11.3.3 可编辑节点的树控件 270
11.4 标签控件 271
11.4.1 设置显示方式 271
11.4.2 图标标签控件 272
11.4.3 设计程序模块 273
11.5 应用工具提示控件 275
11.6 小结 278
11.7 实践与练习 278
第12章 自定义MFC控件 279
教学录像:34分钟 280
12.1 自定义编辑框控件 280
12.1.1 数字编辑框 280
12.1.2 特殊文本颜色编辑框 281
12.1.3 位图背景编辑框 283
12.2 自定义按钮控件 284
12.2.1 图标按钮 284
12.2.2 热点按钮 288
12.2.3 圆形按钮 291
12.3 位图背景树控件 293
12.4 三态效果复选框控件 296
12.5 小结 298
12.6 实践与练习 298
第13章 文本、图形、图像处理 299
教学录像:42分钟 300
13.1 GDI概述 300
13.1.1 设备上下文 300
13.1.2 GDI对象 300
13.2 文本输出 301
13.2.1 在具体位置和区域中输出文本 302
13.2.2 利用制表位控制文本输出 304
13.2.3 设置字体及文本颜色 305
13.2.4 在路径中输出文字 307
13.2.5 在图像背景上输出透明文本 308
13.3 绘制图形 309
13.3.1 利用线条绘制多边形 309
13.3.2 直接绘制多边形 311
13.3.3 绘制控件外观 313
13.3.4 填充图形区域 314
13.4 图像显示 316
13.4.1 在设备上下文中绘制图像 316
13.4.2 从磁盘中加载图像到窗口中 318
13.4.3 位图文件分析 319
13.4.4 根据位图数据直接绘图 322
13.4.5 显示JPEG图像 324
13.5 GDI+图像编程 325
13.5.1 在Visual C++ 6.0中使用GDI+ 325
13.5.2 利用GDI+实现图像类型转换 326
13.5.3 使用GDI+显示GIF图像 329
13.6 小结 332
13.7 实践与练习 332
第3篇 高级应用 335
第14章 多媒体技术 335
教学录像:34分钟 336
14.1 音频处理技术 336
14.1.1 加载应用程序WAVe资源 336
14.1.2 播放WAV文件 337
14.1.3 设计音频播放器 341
14.2 视频处理技术 342
14.2.1 使用控件播放AVI文件 343
14.2.2 使用函数播放AVI文件 343
14.2.3 将位图组合为AVI文件 346
14.2.4 视频文件压缩处理 350
14.3 小结 356
14.4 实践与练习 356
第15章 打印技术 357
教学录像:33分钟 358
15.1 打印基础 358
15.1.1 映射模式 358
15.1.2 获取打印机设备上下文 358
15.2 文档/视图应用程序打印 359
15.3 对话框应用程序打印 360
15.3.1 打印对话框中的表格 361
15.3.2 打印磁盘中的文件 363
15.4 打印设置 364
15.4.1 设置打印方向 364
15.4.2 设置打印页面 367
15.5 修改打印预览 369
15.6 小结 373
15.7 实践与练习 373
第16章 文件与注册表操作 375
教学录像:26分钟 376
16.1 普通文件操作 376
16.1.1 应用C函数进行文件操作 376
16.1.2 使用CFile类进行文件操作 379
16.1.3 使用CFileFind类进行文件查找 383
16.2 串行化 386
16.2.1 串行化基础 386
16.2.2 编写串行化类 388
16.3 INI文件操作 390
16.3.1 INI文件基本结构 390
16.3.2 读写INI文件 391
16.4 注册表操作 394
16.4.1 使用API函数操作注册表 394
16.4.2 基于CRegKey类操作注册表 398
16.5 小结 401
16.6 实践与练习 401
第17章 ADO编程 403
教学录像:23分钟 404
17.1 ADO编程基础 404
17.1.1 ADO概述 404
17.1.2 在Visual C++中应用ADO技术 404
17.2 ADO对象 404
17.2.1 ADO连接对象 404
17.2.2 ADO记录集对象 407
17.2.3 ADO命令对象 410
17.2.4 ADO参数对象 412
17.3 ADO对象应用 413
17.3.1 封装ADO对象 413
17.3.2 使用ADO对象添加、修改、删除数据 415
17.3.3 使用ADO对象检索数据 419
17.4 小结 421
17.5 实践与练习 421
第18章 动态链接库 423
教学录像:24分钟 424
18.1 动态链接库基础 424
18.1.1 动态链接库特点 424
18.1.2 动态链接库的访问 424
18.1.3 查看动态链接库 424
18.2 创建和使用Win32动态链接库 425
18.2.1 创建动态链接库 425
18.2.2 调用动态链接库 427
18.2.3 向动态链接库中添加C++类和资源 428
18.2.4 访问动态链接库中的C++类和资源 429
18.2.5 使用动态链接库设计多国语言的应用程序 431
18.3 小结 435
18.4 实践与练习 435
第19章 多线程程序设计 437
教学录像:31分钟 438
19.1 线程概述 438
19.1.1 理解Windows内核对象 438
19.1.2 理解进程和线程 438
19.2 线程的创建 438
19.2.1 使用CreateThread函数创建线程 439
19.2.2 使用_beginthreadex函数创建线程 440
19.2.3 使用AfxBeginThread函数创建线程 441
19.2.4 应用MFC类库创建线程 443
19.3 线程的挂起、唤醒与终止 446
19.4 线程同步 448
19.4.1 多线程潜在的危险 448
19.4.2 使用事件对象实现线程同步 449
19.4.3 使用信号量对象实现线程同步 452
19.4.4 使用临界区对象实现线程同步 453
19.4.5 使用互斥对象实现线程同步 455
19.5 小结 457
19.6 实践与练习 457
第20章 网络套接字编程 459
教学录像:49分钟 460
20.1 计算机网络基础 460
20.1.1 OSI参考模型 460
20.1.2 IP地址 460
20.1.3 地址解析 461
20.1.4 域名系统 462
20.1.5 TCP/IP协议 462
20.1.6 端口 464
20.2 套接字概述 464
20.2.1 套接字概述 465
20.2.2 网络字节顺序 465
20.2.3 套接字I/O模式 465
20.3 套接字函数 465
20.3.1 套接字函数介绍 465
20.3.2 基于套接字函数的网络聊天系统 470
20.4 MFC套接字编程 475
20.4.1 CAsyncSocket类 475
20.4.2 CSocket类 479
20.4.3 基于TCP协议的网络聊天室系统 480
20.5 小结 485
20.6 实践与练习 485
第4篇 项目实战 489
第21章 图书管理系统 489
教学录像:1小时30分钟 490
21.1 系统分析 490
21.1.1 需求分析 490
21.1.2 可行性分析 490
21.1.3 编写项目计划书 491
21.2 系统设计 492
21.2.1 系统目标 493
21.2.2 系统功能结构 493
21.2.3 业务流程图 493
21.3 数据库设计 494
21.3.1 数据库分析 494
21.3.2 创建数据库 495
21.3.3 创建数据表 495
21.4 创建工程 498
21.5 公共类设计 499
21.5.1 自绘菜单类CMyCoolMenu 499
21.5.2 自定义编辑框类CKeyEdit 504
21.5.3 自定义列表视图类CCustomGrid 506
21.6 启动界面的设计 507
21.6.1 启动界面设计 507
21.6.2 启动界面的淡入淡出效果 507
21.7 登录对话框设计 508
21.7.1 登录对话框的界面设计 509
21.7.2 设置按钮显示位图 509
21.7.3 设置按回车键移动焦点 510
21.7.4 设置“登录”按钮功能 510
21.8 主窗体设计 511
21.8.1 菜单设计 511
21.8.2 工具栏设计 512
21.8.3 主窗体界面设计 513
21.9 “基本信息管理”模块设计 513
21.9.1 “基本信息管理模块”界面设计 514
21.9.2 设置选项卡 514
21.9.3 初始化标签控件 519
21.9.4 设置按钮功能 520
21.10 “库存信息管理”模块设计 520
21.10.1 “库存信息管理”模块界面设计 521
21.10.2 设置选项卡 521
21.11 “查询管理”模块设计 529
21.11.1 “查询管理”界面设计 529
21.11.2 设置选项卡 529
21.12 运行项目 534
21.13 开发常见问题与解决 536
21.13.1 书写错误的函数名 536
21.13.2 使用自定义类时导入头文件 537
21.13.3 屏蔽按回车键关闭窗口功能 537
21.13.4 截获回车后的潜在问题 537
21.13.5 数据添加时字段大小越界 538
21.13.6 如何调用文档/视图结构打印 539
21.14 小结 540