标题：学通Visual C ++的24堂课
图书信息
学通Visual C++的24堂课
作　者：明日科技 刘锐宁、梁水、李伟明 编著 
出版社：清华大学出版社
出版日期：2011年6月
ISBN：978-7-302-25652-6
定价：79.80元含（含光盘1张） 　
开本：16开
页数：731
内容简介
本书从初中级用户的角度出发，以通俗易懂的语言、科学合理的设计，配合丰富多彩的实例，全面讲述了使用Visual C++ 6.0进行程序开发的必备知识和技能。全书共分为24堂课，主要包括Visual C++开发环境、C++语言基础、运算符与表达式、流程控制语句、数组的应用、函数的应用、面向对象程序设计、对话框程序设计、Windows通用对话框、菜单、工具栏和状态栏、常用控件、高级控件、文件操作、图形图像程序设计、打印控制、掌握数据库操作、掌握进程与线程技术、动态链接库、网络编程、程序调试、屏幕录像模块、人事考勤管理系统和企业短信群发系统。
本书适合有志于从事软件开发的初学者、高校计算机相关专业学生，也可作为软件开发人员的参考手册。
本书通过教学视频、实例训练、综合应用、项目实践、自我测试、行动指南逐步深入和强化训练等方式，并辅之以心理励志，来持续激发读者主动学习、自发学习。
本书给出了340个小型实例，196个综合应用，6个项目案例（部分在光盘中），各类技巧、试验200余个，测试题目210个，以方便读者训练、测试和快速提升。
本书DVD光盘给出了120集（356段）多媒体教学视频讲解，每个实例都给出了相应的源程序，可直接复制源码学习或应用。
前言
前  言
Visual C++6.0是由微软公司推出的一种基于Windows环境的可视化编程工具，也是微软Visual Studio家族中的一款重量级产品。利用Visual C++可以开发数据库管理系统、多媒体应用程序、网络应用程序、游戏软件，甚至底层的驱动程序，这使得Visual C++迅速发展成为应用最广泛的编程工具之一。
本书内容
学、练、用到精通只需24堂课。本书从初中级用户的角度，通过24堂课全面讲述了使用Visual C++ 6.0进行程序开发的必备知识和技能。内容安排如下图所示。
第1部分 基础篇（第1～7堂课）：讲述了Visual C++开发环境，C++语言基础，运算符与表达式，流程控制语句，数组的应用，函数的应用和面向对象程序设计。这些都是Visual?C++的基础知识，学通本篇，再学其他篇相信一定很轻松。
第2部分 提高篇（第8～13堂课）：讲述了使用Visual C++ 6.0进行应用程序开发的各种常用技术，包括对话框程序设计，Windows通用对话框，菜单，工具栏和状态栏，常用控件和高级控件。通过这一篇的学习，读者可以掌握对话框、菜单、工具栏和控件等技术，开发小型实用工具。
第3部分 高级篇（第14～21堂课）：讲述了文件操作，图形图像程序设计，打印控制，掌握数据库操作，掌握进程与线程技术，动态链接库，网络编程和程序调试。通过这一篇的学习，读者可以掌握文件、数据库、网络等技术，开发小型网络程序和数据库应用程序。
第4部分 实战篇（第22～24堂课）：讲述了屏幕录像模块、人事考勤管理系统和企业短信群发系统3个完整的项目实例设计全过程。通过该篇的学习，读者可以积累项目开发经验。
本书特点
* 配备了120集（356段）多媒体教学视频讲解。
本书DVD光盘提供了覆盖全书的语音视频讲解，读者可以通过视频快速、直观、轻松地学习。
* 每一堂课都结合“照猫画虎”、“情景应用”。
为了提高读者的动手能力，激发学习兴趣，本书提供了“照猫画虎”和“情景应用”栏目，根据实例模仿着去做是学习编程的最快方式。
* 每一堂课都结合“成功故事”和“行动指南”，时刻激励和鼓舞读者。
在学习中，尤其是最初的一段时间内，非常有必要不断地对学习者加以激励和鼓舞。让他们坚持下来是至关重要的，因此书中不间断地用一些励志故事和“行动指南”去鼓舞其信心。
* 光盘提供了本书的所有代码，即使只有一行。
本书光盘提供了所有实例的源代码，哪怕只有一行。读者可以直接复制，以提高学习效率。
* 本书所有习题都给出了答案，部分习题还有解析，读者可以对照查阅。
读者对象
(1)有志于软件开发的初学者         (2)高等院校计算机相关专业的老师和学生
(3)准备从事软件开发的求职者     (4)参与毕业设计的学生
(5) 初、中级程序开发人员           (6) 程序测试及维护人员
本书作者
本书由明日科技组织编写，参加编写的程序员有刘锐宁、李伟明、梁水、王国辉、赛奎春、潘凯华、刘欣、李慧、陈丹丹、高春艳、李伟、孙秀梅、杨丽、刘玲玲、朱晓、刘燕、陈英、李鑫、李贺、肖鑫、张丽娜、沈博、刘冠男、曹飞飞、李丽、聂喜婷、王明昭、张英豪、王小科、赵会东、白伟明等。
由于水平有限，书中疏漏和不足之处在所难免，恳请广大读者朋友批评指正。
技术支持与服务
最后，感谢您选择本书，希望本书能成为您编程路上的领航者。
祝读书快乐！
特别提醒：
亲爱的读者朋友，由于近期纸张价格和印制成本大幅上涨，为不增加读者朋友的负担，又不减少书的内容，本书的最后几章内容不得不放在配书光盘中（参见目录），由此给您带来了不便，在此深表歉意。
编  者
图书目录
目  录
第1部分  基础篇
第1堂课  Visual C++开发环境 3
视频讲解：115分钟
1.1　Visual C++ 6.0概述 4
1.2　熟悉Visual C++ 6.0开发环境 4
1.2.1　菜单介绍 5
1.2.2　工具栏介绍 12
1.2.3　Visual C++ 6.0工作区窗口介绍 14
1.2.4　代码编辑窗口介绍 15
1.2.5　Visual C++ 6.0 控件面板介绍 16
1.2.6　输出窗口介绍 16
1.3　使用MSDN 17
1.4　照猫画虎——基本功训练 18
1.4.1　基本功训练1——自定义工具栏 18
1.4.2　基本功训练2——调整代码文本颜色 19
1.4.3　基本功训练3——批量注释 20
1.4.4　基本功训练4——向工程中加载图标
资源 23
1.4.5　基本功训练5——在工程中添加CPP
文件 23
1.5　情景应用——拓展与实践 24
1.5.1　情景应用1——编写加法计算器 24
1.5.2　情景应用2——在控制台输出当前日期 25
1.5.3　情景应用3——输出带边框的字符串 25
1.5.4　情景应用4——在控制台接收用户
输入的用户名 26
1.5.5　情景应用5——输出商品价格和
购买数量 27
1.6　自我测试 28
1.7　行动指南 29
1.8　成功故事——甩手的故事 30
第2堂课  C++语言基础 31
视频讲解：157分钟
2.1　程序设计基本要素 32
2.1.1　认识标识符 32
2.1.2　关键字介绍 32
2.1.3　常量的定义和使用 33
2.1.4　变量的定义和使用 33
2.2　代码编写规范 34
2.2.1　合理使用注释 34
2.2.2　统一代码缩进 35
2.2.3　代码换行 36
2.2.4　合理使用空格 37
2.2.5　命名规则 37
2.3　数据类型 38
2.3.1　简单数据类型介绍 39
2.3.2　布尔类型的使用 40
2.3.3　应用枚举类型 40
2.3.4　定义结构体类型 41
2.3.5　共用体类型介绍 43
2.3.6　使用指针类型 44
2.3.7　认识引用类型 46
2.3.8　自定义类型 47
2.4　照猫画虎——基本功训练 47
2.4.1　基本功训练1——定义整型变量
并赋初值 47
2.4.2　基本功训练2——使用枚举类型输出
当前星期 48
2.4.3　基本功训练3——定义操作员
信息结构体 49
2.4.4　基本功训练4——使用取值运算符
访问指针数据 50
2.4.5　基本功训练5——使用带参数的宏定义 51
2.5　情景应用——拓展与实践 52
2.5.1　情景应用1——利用#输出图形 52
2.5.2　情景应用2——简单的字符加密 52
2.5.3　情景应用3——输出电视机的状态信息 53
2.5.4　情景应用4——简历的快速复制 54
2.5.5　情景应用5——绘制余弦曲线 55
2.6　自我测试 56
2.7　行动指南 58
2.8　成功故事——“杀毒王”：王江民 59
第3堂课  运算符与表达式 61
视频讲解：88分钟
3.1　运算符 62
3.1.1　赋值运算符 62
3.1.2　算术运算符 63
3.1.3　关系运算符 64
3.1.4　逻辑运算符 65
3.1.5　递增递减运算符 66
3.1.6　位运算符 67
3.1.7　sizeof运算符 70
3.1.8　new和delete运算符 71
3.2　结合性与优先级 72
3.3　表达式 73
3.3.1　逗号表达式的使用 74
3.3.2　条件表达式 74
3.4　照猫画虎——基本功训练 75
3.4.1　基本功训练1——计算学生的平均身高 75
3.4.2　基本功训练2——判断是否为回
文字符串 75
3.4.3　基本功训练3——统计各种字符个数 76
3.4.4　基本功训练4——实现两个变量值的
互换 77
3.4.5　基本功训练5——使用条件运算符
判断性别 78
3.5　情景应用——拓展与实践 79
3.5.1　情景应用1——整数加减法练习 79
3.5.2　情景应用2——计算圆面积 80
3.5.3　情景应用3——数鸭子问题求解 81
3.5.4　情景应用4——比较两个数的大小 82
3.5.5　情景应用5——验证用户名 82
3.6　自我测试 83
3.7　行动指南 85
3.8　成功故事——初中站长的
创业故事 86
第4堂课  流程控制语句 87
视频讲解：115分钟
4.1　语句的构成 88
4.2　复合语句 88
4.3　分支语句 90
4.3.1　使用if语句实现判断 90
4.3.2　多条件判断的switch语句 94
4.4　循环语句 98
4.4.1　for语句 98
4.4.2　while语句实现循环 101
4.4.3　使用do while语句实现至少循环一次 103
4.5　其他控制语句 103
4.5.1　使用goto语句跳转到指定语句 103
4.5.2　用于返回数据的return语句 105
4.5.3　使用exit语句跳出当前进程 106
4.6　照猫画虎——基本功训练 106
4.6.1　基本功训练1——李白喝酒问题 106
4.6.2　基本功训练2——促销商品的
折扣计算 107
4.6.3　基本功训练3——灯塔数量 109
4.6.4　基本功训练4——小球下落 110
4.6.5　基本功训练5——判断名次 111
4.7　情景应用——拓展与实践 112
4.7.1　情景应用1——购物街中的商品
价格竞猜 112
4.7.2　情景应用2——上帝创世的秘密 113
4.7.3　情景应用3——再现乘法口诀表 115
4.7.4　情景应用4——老师分糖果 116
4.7.5　情景应用5——猴子吃桃 117
4.8　自我测试 118
4.9　行动指南 121
4.10　成功故事——缔造华人的
硅谷传奇：杨致远 122
第5堂课  数组的应用 123
视频讲解：51分钟
5.1　一维数组 124
5.1.1　一维数组的定义 124
5.1.2　一维数组的初始化 124
5.1.3　一维数组元素的引用 125
5.1.4　一维数组的应用 125
5.2　二维数组和多维数组 127
5.2.1　二维数组和多维数组的定义 127
5.2.2　二维数组和多维数组的初始化 128
5.2.3　二维数组和多维数组的引用 129
5.2.4　二维数组和多维数组的应用 129
5.3　指针与数组 131
5.3.1　指向数组的指针 131
5.3.2　指针数组 132
5.4　照猫画虎——基本功训练 134
5.4.1　基本功训练1——定义一个整型数组
并初始化 134
5.4.2　基本功训练2——动态创建指定大小的
字符型数组 134
5.4.3　基本功训练3——通过二维数组
存储天气温度 135
5.4.4　基本功训练4——通过指针输出数组
中的元素 136
5.4.5　基本功训练5——数组的复制 136
5.5　情景应用——拓展与实践 137
5.5.1　情景应用1——遍历二维数组 137
5.5.2　情景应用2——数组冒泡排序法 138
5.5.3　情景应用3——顺序查找数组中元素 139
5.5.4　情景应用4——有序数组的折半查找 140
5.5.5　情景应用5——向数组中插入元素 142
5.6　自我测试 144
5.7　行动指南 145
5.8　成功故事——征途巨人史玉柱的
第一桶金 146
第6堂课  函数的应用 147
视频讲解：149分钟
6.1　函数的定义与使用 148
6.1.1　定义和调用函数 148
6.1.2　函数参数的默认值 150
6.1.3　数组作为函数参数 151
6.1.4　指针或引用作为函数参数 154
6.1.5　省略号作为函数参数 156
6.1.6　内联函数 157
6.1.7　重载函数 158
6.1.8　函数指针 160
6.2　作用域和生命期 163
6.2.1　局部作用域 163
6.2.2　全局作用域 164
6.2.3　定义和使用命名空间 165
6.3　函数模板 169
6.3.1　定义和使用函数模板 169
6.3.2　重载函数模板 170
6.4　照猫画虎——基本功训练 171
6.4.1　基本功训练1——通过默认值实现3个
数相加 171
6.4.2　基本功训练2——在数组中查找指定
数据并通过参数返回数据索引 172
6.4.3　基本功训练3——通过函数输出存
储在数组中的商品信息 173
6.4.4　基本功训练4——利用函数重载实现
减法运算 174
6.4.5　基本功训练5——使用函数模板进行
排序 175
6.5　情景应用——拓展与实践 176
6.5.1　情景应用1——遍历磁盘目录 176
6.5.2　情景应用2——对学生成绩进行排序 178
6.5.3　情景应用3——使用递归函数计算n的
阶乘 179
6.5.4　情景应用4——通过函数回调输出
查找数据 180
6.5.5　情景应用5——通过函数模板返回
数组中的最小值 181
6.6　自我测试 182
6.7　行动指南 184
6.8　成功故事——使计算机成为生活的
必需品 185
第7堂课  面向对象程序设计 187
视频讲解：243分钟
7.1　类的概念与声明 188
7.1.1　类的概念 188
7.1.2　类的声明 188
7.2　对象的使用 189
7.2.1　对象的声明与实例化 189
7.2.2　类与对象的关系 190
7.2.3　类成员的访问 190
7.2.4　类成员的保护 190
7.3　构造函数与析构函数 192
7.3.1　构造函数与默认构造函数 192
7.3.2　复制构造函数 195
7.3.3　重载构造函数 196
7.3.4　析构函数 198
7.4　类的继承 200
7.4.1　单一继承 200
7.4.2　多重继承 202
7.4.3　覆盖成员函数 203
7.4.4　虚函数 204
7.4.5　纯虚函数 207
7.5　类方法的使用 209
7.5.1　实现类的方法 209
7.5.2　内联方法 211
7.5.3　静态成员数据和静态方法 211
7.5.4　友元类和友元方法 215
7.5.5　const方法 219
7.5.6　运算符重载 220
7.6　类模板的使用 222
7.6.1　类模板的声明和实例化 222
7.6.2　类模板的实现 223
7.7　照猫画虎——基本功训练 224
7.7.1　基本功训练1——通过构造函数初始化
学生信息 224
7.7.2　基本功训练2——在析构函数中释放
类中的资源 226
7.7.3　基本功训练3——重载“=”运算符 227
7.7.4　基本功训练4——对动物的行为实现
多态 228
7.7.5　基本功训练5——通过类模板实现加法
计算器 229
7.8　情景应用——拓展与实践 230
7.8.1　情景应用1——统计图书的销售量 230
7.8.2　情景应用2——计算几何图形的面积 231
7.8.3　情景应用3——利用复制构造函数简化
实例创建 233
7.8.4　情景应用4——实现类对象的单模式
创建 234
7.8.5　情景应用5——利用适配器模式给汽车
增加GPS定位功能 235
7.9　自我测试 237
7.10　行动指南 238
7.11　成功故事——图文世界的缔造者 239
第2部分  提高篇
第8堂课  对话框程序设计 243
视频讲解：182分钟
8.1　创建对话框应用程序 244
8.2　创建对话框 245
8.2.1　设计对话框资源 245
8.2.2　创建并显示对话框 252
8.3　设置对话框属性 260
8.3.1　使用属性对话框设置对话框属性 260
8.3.2　使用代码设置对话框属性 266
8.4　对话框布局 267
8.4.1　向对话框中添加控件 267
8.4.2　调整控件的Tab键顺序 268
8.4.3　调整控件至相同的大小 268
8.4.4　在对话框中对齐控件 270
8.4.5　排列控件 272
8.4.6　使用网格线进行界面布局 276
8.5　访问对话框中的控件 277
8.5.1　使用类向导为控件关联变量 277
8.5.2　利用控件ID获取控件窗口指针 281
8.5.3　利用数据交换访问控件文本数据 282
8.6　设置对话框和应用程序图标 283
8.7　向对话框中添加成员和成员函数 286
8.7.1　添加成员和成员函数 286
8.7.2　添加消息处理函数 290
8.7.3　手动添加命令消息处理函数 293
8.8　使用消息对话框 293
8.9　照猫画虎——基本功训练 295
8.9.1　基本功训练1——设置对话框的标题 295
8.9.2　基本功训练2——遍历对话框中的控件 295
8.9.3　基本功训练3——显示欢迎窗体 296
8.9.4　基本功训练4——在对话框关闭时
弹出确认窗口 297
8.9.5　基本功训练5——无法通过Esc键
关闭窗体 297
8.10　情景应用——拓展与实践 298
8.10.1　情景应用1——实现登录对话框 298
8.10.2　情景应用2——始终在最上面的
窗体 299
8.10.3　情景应用3——如QQ般隐藏的
窗体 300
8.10.4　情景应用4——隐藏和显示标题栏 301
8.10.5　情景应用5——在对话框中设置
控件的提示信息 301
8.11　自我测试 303
8.12　行动指南 304
8.13　成功故事——世界第一人称
射击游戏之父 305
第9堂课  Windows通用对话框 307
视频讲解：54分钟
9.1　文件对话框 308
9.1.1　文件对话框的样式 308
9.1.2  文件对话框的调用 308
9.2　“查找/替换”对话框 310
9.2.1　“查找/替换”对话框样式 310
9.2.2　“查找/替换”对话框调用 311
9.3　“字体”对话框 313
9.3.1　“字体”对话框样式 314
9.3.2　“字体”对话框调用 314
9.4　“颜色”对话框 315
9.4.1　“颜色”对话框样式 316
9.4.2　“颜色”对话框调用 316
9.5　“打印”对话框 317
9.5.1　“打印”对话框样式 317
9.5.2　“打印”对话框调用 318
9.6　“页面设置”对话框 320
9.6.1　“页面设置”对话框样式 320
9.6.2　“页面设置”对话框调用 320
9.7　照猫画虎——基本功训练 321
9.7.1　基本功训练1——打开文件时对文件
进行过滤 321
9.7.2　基本功训练2——获取“查找”对话框
中所要查找的字符串 322
9.7.3　基本功训练3——输出“字体”对话框属
性信息 323
9.7.4　基本功训练4——获取“颜色”
对话框中用户所选颜色值 324
9.7.5　基本功训练5——获取“页面设置”
对话框中纸张大小 325
9.8　情景应用——拓展与实践 326
9.8.1　情景应用1——可以显示图片预览的
“打开”对话框 326
9.8.2　情景应用2——设置是否区分大
小写 328
9.8.3　情景应用3——使用“字体”对话框
设置静态文本字体 329
9.8.4　情景应用4——使用“颜色”对话框
设置矩形颜色 330
9.8.5　情景应用5——调用“打印”对话框
打印图形内容 331
9.9　自我测试 333
9.10　行动指南 334
9.11　成功故事——微型博客
Twitter创始人 334
第10堂课  菜单 337
视频讲解：77分钟
10.1　设计菜单 338
10.1.1　在资源管理器中设计菜单 338
10.1.2　菜单属性 339
10.1.3　设计菜单加速键 341
10.1.4　为对话框设置菜单 342
10.2　菜单项的命令处理 343
10.2.1　实现菜单命令 343
10.2.2　更新菜单项复选标识 344
10.2.3　一个函数实现多个菜单项 345
10.3　动态创建和修改菜单 347
10.3.1　动态创建对话框菜单 347
10.3.2　创建弹出式菜单 350
10.3.3　禁用/启用菜单项 352
10.4　自绘菜单 354
10.4.1　为菜单项添加图标 354
10.4.2　菜单位图背景 359
10.5　照猫画虎——基本功训练 361
10.5.1　基本功训练1——弹出工具栏右键
菜单 361
10.5.2　基本功训练2——菜单左侧显示
导航条图片 362
10.5.3　基本功训练3——带历史信息的菜单 363
10.5.4　基本功训练4——动态设置
对话框菜单 364
10.5.5　基本功训练5——使用更新机制
控制菜单可用性 364
10.6　情景应用——拓展与实践 365
10.6.1　情景应用1——根据表中数据动态
生成菜单 365
10.6.2　情景应用2——根据INI文件
创建菜单 366
10.6.3　情景应用3——将菜单项的字体
设置为粗体 367
10.6.4　情景应用4——多国语言菜单 368
10.6.5　情景应用5——任务栏托盘弹出菜单 369
10.7　自我测试 370
10.8　行动指南 371
10.9　成功故事——因特网的点火人 372
第11堂课  工具栏和状态栏 375
视频讲解：67分钟
11.1　工具栏设计 376
11.1.1　工具栏资源设计 376
11.1.2　工具栏按钮命令处理 379
11.1.3　动态创建工具栏 380
11.1.4　为工具栏设置工具提示功能 384
11.2　状态栏设计 386
11.2.1　创建状态栏 386
11.2.2　在状态栏中显示进度条 388
11.2.3　使状态栏随对话框的改变而改变 389
11.3　照猫画虎——基本功训练 390
11.3.1　基本功训练1——根据菜单
创建工具栏 390
11.3.2　基本功训练2——工具栏按钮
单选效果 392
11.3.3　基本功训练3——在工具栏中
添加编辑框 394
11.3.4　基本功训练4——根据INI文件
创建工具栏 395
11.3.5　基本功训练5——在状态栏显示时间 396
11.4　情景应用——拓展与实践 397
11.4.1　情景应用1——根据表中数据动态
生成工具栏 397
11.4.2　情景应用2——可调整按钮位置的
工具栏 399
11.4.3　情景应用3——带背景的工具栏 400
11.4.4　情景应用4——工具栏左侧显示双线 401
11.4.5　情景应用5——滚动字幕的状态栏 402
11.5　自我测试 404
11.6　行动指南 405
11.7　成功故事——暴雪公司的领航者 405
第12堂课  常用控件 407
视频讲解：110分钟
12.1　静态文本控件StaticText 408
12.1.1　静态文本控件的主要属性 408
12.1.2　CStatic类的主要方法 409
12.2　编辑框控件EditBox 411
12.2.1　编辑框控件的主要属性 411
12.2.2　CEdit类的主要方法 413
12.3　按钮控件Button 416
12.3.1　按钮控件的主要属性 416
12.3.2　CButton类的主要方法 417
12.4　复选框控件CheckBox 419
12.4.1　复选框控件的主要属性 419
12.4.2　设置选中状态 420
12.4.3　获取选中状态 420
12.5　单选按钮控件RadioButton 422
12.5.1　单选按钮控件的主要属性 422
12.5.2　获得单选按钮中的文本 423
12.6　组合框控件ComboBox 424
12.6.1　组合框控件的主要属性 424
12.6.2　CComboBox类的主要方法 425
12.7　列表框控件ListBox 427
12.7.1　列表框控件的主要属性 427
12.7.2　CListBox类的主要方法 428
12.8　图像控件Picture 431
12.8.1　图像控件的主要属性 431
12.8.2　显示图像 432
12.9　照猫画虎——基本功训练 433
12.9.1　基本功训练1——具有分隔条的静态
文本控件 433
12.9.2　基本功训练2——金额编辑框 434
12.9.3　基本功训练3——向组合框中
插入数据 436
12.9.4　基本功训练4——上下移动列表
项位置 437
12.9.5  基本功训练5——动态加载图像 438
12.10　情景应用——拓展与实践 439
12.10.1　情景应用1——编辑框输入时显示
选择列表 439
12.10.2　情景应用2——按钮七巧板 440
12.10.3　情景应用3——QQ登录式的用户
选择列表 443
12.10.4　情景应用4——自动调整组合框宽度 444
12.10.5　情景应用5——要提示才能看得见 445
12.11　自我测试 447
12.12　行动指南 448
12.13　成功故事——3D王国的开创者 449
第13堂课  高级控件 451
视频讲解：119分钟
13.1　图像列表控件（ImageList） 452
13.2　列表视图控件（ListControl） 455
13.2.1　列表视图控件的主要属性 455
13.2.2　列表视图控件的主要方法 456
13.2.3　设置列表视图背景位图 459
13.2.4　使用列表视图显示表格数据 461
13.3　树视图控件（TreeControl） 462
13.3.1  树视图控件的主要属性 462
13.3.2　树视图控件的主要方法 462
13.3.3　使用树视图控件显示区域信息 466
13.4　进度条控件（Progress） 467
13.4.1　进度条控件的主要属性 467
13.4.2　进度条控件的主要方法 467
13.4.3　使用进度条显示操作进度 468
13.5　标签控件（TabControl） 469
13.5.1　标签控件的主要属性 469
13.5.2　标签控件的主要方法 470
13.5.3　使用标签控件设计多页面窗口 472
13.6　照猫画虎——基本功训练 473
13.6.1　基本功训练1——使用图像列表
绘制图标 473
13.6.2　基本功训练2——使用列表视图
设计登录界面 474
13.6.3　基本功训练3——修改树视图控件
文本颜色 475
13.6.4　基本功训练4——标签控件以类似于
按钮的形式显示 476
13.6.5　基本功训练5——标签位于控件的
底部 478
13.7　情景应用——拓展与实践 480
13.7.1  情景应用1——以报表显示图书信息 480
13.7.2　情景应用2——以树状结构显示部门
结构信息 481
13.7.3  情景应用3——在树状结构中编辑地域
信息 483
13.7.4　情景应用4——使树视图控件具有复选
功能 484
13.7.5　情景应用5——Loading窗口中的
进度的百分比显示 485
13.8　自我测试 487
13.9　行动指南 488
13.10　成功故事——“盖茨第二” 488
第3部分  高级篇
第14堂课  文件操作 493
视频讲解：135分钟
14.1　使用C函数进行文件操作 494
14.1.1　读取文件数据 494
14.1.2　向文件中写入数据 496
14.1.3　定位文件 498
14.2　使用CFile类进行文件操作 500
14.2.1　CFile类的主要方法 500
14.2.2　读取文件数据 500
14.2.3　向文件中写入数据 502
14.2.4　定位文件 504
14.3　文件查找 506
14.3.1　CFileFind类的主要方法 506
14.3.2　查找指定文件 508
14.4　INI文件操作 510
14.4.1　INI文件结构解析 510
14.4.2　INI文件操作函数 510
14.4.3　读写INI文件 513
14.5　注册表操作 515
14.5.1　操作注册表的函数 515
14.5.2　利用函数直接读写注册表 518
14.5.3　CRegKey类的主要方法 520
14.5.4　利用CRegKey类读写注册表 521
14.6　照猫画虎——基本功训练 523
14.6.1　基本功训练1——创建文件 523
14.6.2　基本功训练2——复制文件 524
14.6.3　基本功训练3——删除文件 525
14.6.4　基本功训练4——重命名文件 527
14.6.5　基本功训练5——列举文件夹下
所有文件 528
14.7　情景应用——拓展与实践 530
14.7.1　情景应用1——获取目标文件的创建和
修改时间 530
14.7.2　情景应用2——复制文件时显示进
度条 531
14.7.3　情景应用3——批量删除指定类型的
文件 533
14.7.4　情景应用4——把文件删除到回收
站中 534
14.7.5　情景应用5——设置开机自动运行 536
14.8　自我测试 539
14.9　行动指南 540
14.10　成功故事——迅雷创始人：邹胜龙 541
第15堂课  图形图像程序设计 543
视频讲解：121分钟
15.1　GDI设备与对象 544
15.1.1　画笔CPen 544
15.1.2　画刷CBrush 545
15.1.3　位图CBitmap 546
15.1.4　区域CRgn 547
15.1.5　字体CFont 548
15.1.6　设备上下文CDC 550
15.2　常用图像存储格式 551
15.2.1　位图BMP 551
15.2.2　图标ICO 553
15.2.3　GIF图像 554
15.3　文本输出与绘制 556
15.3.1　在指定位置输出文本 556
15.3.2　在指定区域输出文本 557
15.3.3　利用制表位输出文本 559
15.3.4　设置字体、颜色及对齐方式 560
15.3.5　设置文本背景透明 562
15.4　绘制图形图像 563
15.4.1　利用线条绘制表格 563
15.4.2　绘制多边形 564
15.4.3　填充区域 565
15.4.4　填充选区 566
15.4.5　线条的渐变 568
15.4.6　区域的渐变 569
15.4.7　绘制位图 570
15.5　照猫画虎——基本功训练 572
15.5.1　基本功训练1——绘制圆角按钮 572
15.5.2　基本功训练2——绘制并填充三角形 573
15.5.3　基本功训练3——绘制文字边框 575
15.5.4　基本功训练4——绘制居中显示的
图像 576
15.5.5　基本功训练5——绘制空心字 576
15.6　情景应用——拓展与实践 578
15.6.1　情景应用1——创建不同的画刷 578
15.6.2　情景应用2——模拟时钟 580
15.6.3　情景应用3——数字验证 582
15.6.4　情景应用4——绘制自定义线条 583
15.6.5　情景应用5——绘制渐变颜色的空
心字 584
15.7　自我测试 586
15.8　行动指南 587
15.9　成功故事——知识改变命运、
科技改变生活 588
第16堂课  打印控制 589
视频讲解：94分钟
16.1　打印基础知识 590
16.1.1　打印机介绍 590
16.1.2　分辨率 590
16.1.3　映射模式 590
16.2　基于文档、视图结构的打印 591
16.2.1　按比例打印数据 591
16.2.2　打印图像 594
16.2.3　自定义打印预览 597
16.3　基于对话框结构的打印 599
16.3.1　获取打印机设备上下文 599
16.3.2　打印预览 600
16.3.3　分页打印 602
16.4　打印控制相关技术 603
16.4.1　自定义打印纸大小 603
16.4.2　控制打印方向 603
16.4.3　设置打印份数 604
16.5　照猫画虎——基本功训练 605
16.5.1　基本功训练1——在打印机上
绘制文字 605
16.5.2　基本功训练2——实现横向打印表格 606
16.5.3　基本功训练3——获取打印纸边距 607
16.5.4　基本功训练4——打印新一页 608
16.5.5　基本功训练5——打印窗体客户区 608
16.6　情景应用——拓展与实践 609
16.6.1　情景应用1——设置打印表格的边
线及字体 609
16.6.2　情景应用2——实现照片的打印 612
16.6.3　情景应用3——实现报表打印 613
16.6.4　情景应用4——实现商品销售
图表打印 615
16.6.5　情景应用5——具有滚动条的
预览界面 617
16.7　自我测试 619
16.8　行动指南 620
16.9　成功故事——中国通信设备行业的
领跑者：任正非 621
第17堂课  掌握数据库操作 623
视频讲解：60分钟
17.1　数据库概述 624
17.1.1　数据库发展历史 624
17.1.2　关系型数据库 625
17.2　ADO编程基础 625
17.2.1　ADO概述 625
17.2.2　在Visual C++中应用ADO技术 626
17.3　ADO对象 626
17.3.1　ADO连接对象（Connection） 626
17.3.2　ADO记录集对象（Recordset） 628
17.3.3　ADO命令对象Command 631
17.3.4　ADO参数对象Parameter 633
17.4　利用ADO连接数据库 634
17.4.1　连接Access数据库 634
17.4.2  连接SQL Server数据库 637
17.5　利用ADO操作数据库 638
17.5.1　获取记录集数据 638
17.5.2　遍历记录集 639
17.5.3　向记录集中添加数据 641
17.5.4　修改记录集数据 644
17.5.5　删除记录集数据 645
17.6　照猫画虎——基本功训练 647
17.6.1　基本功训练1——用ADO
动态连接SQL Server数据库 647
17.6.2　基本功训练2——将员工表中
记录批量插入到另一个表中 648
17.6.3　基本功训练3——批量修改员工表中
的工资 649
17.6.4　基本功训练4——删除指定条件的
数据 650
17.6.5　基本功训练5——利用ADO创建
存储过程 651
17.7　情景应用——拓展与实践 652
17.7.1　情景应用1——读取SQL Server
数据库结构 652
17.7.2　情景应用2——在Access数据库中
录入和提取图片 654
17.7.3　情景应用3——在应用程序中
使用事务 657
17.7.4　情景应用4——利用ADO动态
创建视图 658
17.7.5　情景应用5——调用具有输出参数的
存储过程 659
17.8　自我测试 660
17.9　行动指南 661
17.10　成功故事——软件业的华人教父：
王嘉廉 662
第18堂课  掌握进程与线程技术 663
视频讲解：105分钟
18.1　理解进程 664
18.1.1　进程概述 664
18.1.2　进程的创建 665
18.1.3　进程的终止 666
18.1.4　进程间通信 668
18.2　线程的使用 671
18.2.1　线程概述 671
18.2.2　线程的创建 672
18.2.3　线程的调度 674
18.3　线程同步技术 676
18.3.1　多线程潜在的危机 676
18.3.2　使用事件对象实现线程同步 677
18.3.3　使用互斥对象实现线程同步 679
18.4　照猫画虎——基本功训练 681
18.4.1　基本功训练1——在自己的应用程序中
调用QQ 681
18.4.2　基本功训练2——利用多线程实现
文件查找 682
18.4.3　基本功训练3——禁止程序重复运行 683
18.4.4　基本功训练4——垃圾文件清理工具 684
18.4.5　基本功训练5——利用线程同步向
控件中写入数据 687
18.5　情景应用——拓展与实践 689
18.5.1　情景应用1——等待打开的
“计事本”程序关闭 689
18.5.2　情景应用2——应用线程构建
视频窗口 690
18.5.3　情景应用3——利用闪屏线程设计
启动界面 691
18.5.4　情景应用4——统计文本文件中
汉字与字符的个数 692
18.5.5　情景应用5——利用多线程实现
文件下载 694
18.6　自我测试 696
18.7　行动指南 697
18.8　成功故事——创造互联网搜索时代 697
第19堂课  动态链接库 699
视频讲解：86分钟
19.1　动态链接库基础 700
19.1.1　动态链接库的特点 700
19.1.2　查看动态链接库 700
19.2　创建和调用动态链接库 701
19.2.1　创建Win32动态链接库 702
19.2.2　命名约定 703
19.2.3　动态链接库的调用 705
19.2.4　创建MFC动态链接库 706
19.3　动态链接库高级应用 708
19.3.1　应用程序中的资源 708
19.3.2　加载动态链接库中的资源 711
19.4　照猫画虎——基本功训练 712
19.4.1　基本功训练1——判断闰年 712
19.4.2　基本功训练2——格式化磁盘 714
19.4.3　基本功训练3——函数转发 715
19.4.4　基本功训练4——十进制转八进制 716
19.4.5　基本功训练5——修改应用程序
对话框 717
19.5　情景应用——拓展与实践 719
19.5.1　情景应用1——计算某日是该年第
几天 719
19.5.2　情景应用2——提取并保存应用程序
图标 721
19.5.3　情景应用3——汉语和英语两个版本
的简单加法计算器 723
19.5.4　情景应用4——求三角形面积 725
19.5.5　情景应用5——获取CPU的ID值 727
19.6　自我测试 729
19.7　行动指南 730
19.8　成功故事——IT风云人物：
鲍岳桥 730
特别提醒：
亲爱的读者朋友，由于近期纸张价格和印制成本大幅上涨，为不增加读者朋友的负担，又不减少书的内容，本书以下章节内容不得不放在配书光盘中，由此给您带来了不便，在此深表歉意。
第20堂课  网络编程 733
视频讲解：145分钟
（本章内容在配书光盘中）
20.1　计算机网络基础 734
20.1.1　计算机网络发展历史 734
20.1.2　OSI参考模型 734
20.1.3　IP地址 735
20.1.4　域名 735
20.1.5　地址解析 736
20.1.6　TCP/IP协议 736
20.1.7　端口 738
20.2　套接字编程基础 738
20.2.1　套接字概述 738
20.2.2　套接字阻塞模式 738
20.2.3　字节顺序 739
20.2.4　套接字I/O模型 739
20.3　套接字函数 753
20.3.1　套接字函数介绍 754
20.3.2　设计简单的网络聊天程序 759
20.4　MFC套接字编程 766
20.4.1　CAsyncSocket类 766
20.4.2　CSocket类 770
20.5　照猫画虎——基本功训练 771
20.5.1　基本功训练1——获取本机用户名和
IP地址 771
20.5.2　基本功训练2——服务器端和客户端
消息通信 772
20.5.3　基本功训练3——发送编辑框内数据 776
20.6　情景应用——拓展与实践 780
20.6.1  情景应用1——实现Ping命令 780
20.6.2　情景应用2——利用UDP协议实现
广播通信 783
20.6.3　情景应用3——通过UDP协议发送消息 785
20.7　自我测试 787
20.8　行动指南 788
20.9　成功故事——中国第一程序员：求伯君 789
第21堂课  程序调试 791
视频讲解：31分钟
（本章内容在配书光盘中）
21.1　断点跟踪 792
21.1.1　设置普通断点 792
21.1.2　设置条件断点 792
21.1.3　设置数据断点 794
21.1.4　设置消息断点 795
21.1.5　进行断点跟踪 795
21.2　调试窗口 797
21.2.1  使用Watch窗口查看变量值 797
21.2.2  使用Call Stack窗口查看函数的调用 798
21.2.3　使用Memory窗口查看对象的内存信息 798
21.2.4　使用Variables窗口查看变量信息 799
21.2.5　使用Registers窗口查看寄存器信息 799
21.2.6　使用Disassembly窗口查看反汇编代码 800
21.3　内存泄露检查 801
21.4　自我测试 802
21.5　行动指南 803
21.6  成功故事——IT“大王”：王志东 803
第4部分  实战篇
第22堂课  屏幕录像模块 807
视频讲解：102分钟
（本章内容在配书光盘中）
22.1　屏幕录像模块概述 808
22.1.1　模块概述 808
22.1.2　功能结构 808
22.2　关键技术 808
22.2.1　屏幕抓图 808
22.2.2　抓图时抓取鼠标 809
22.2.3　将位图数据流写入AVI文件 810
22.2.4　将AVI文件转换成位图数据 814
22.2.5　获得AVI文件属性 815
22.2.6  根据运行状态显示托盘图标 817
22.2.7　获得磁盘的剩余空间 818
22.2.8　动态生成录像文件名 819
22.3　主窗体设计 820
22.3.1　概述 820
22.3.2　界面设计 821
22.3.3　功能实现 821
22.4　录像截取模块设计 832
22.4.1　概述 832
22.4.2　界面设计 832
22.4.3　功能实现 833
22.5　录像合成模块设计 838
22.5.1　概述 838
22.5.2　界面设计 838
22.5.3　功能实现 839
第23堂课  人事考勤管理系统 843
视频讲解：91分钟
（本章内容在配书光盘中）
23.1　开发背景 844
23.2　系统分析 844
23.2.1　需求分析 844
23.2.2　系统功能描述 844
23.3　系统设计 844
23.3.1　系统目标 844
23.3.2　系统功能结构 845
23.3.3　系统预览 845
23.3.4　业务流程图 846
23.3.5　数据库设计 846
23.4　公共类设计 847
23.5　主窗体设计 852
23.6　用户登录模块设计 853
23.6.1　用户登录模块概述 853
23.6.2　用户登录模块技术分析 853
23.6.3　用户登录模块实现过程 854
23.7　用户管理模块设计 855
23.7.1　用户管理模块概述 855
23.7.2　用户管理模块技术分析 855
23.7.3　用户管理模块实现过程 855
23.8　部门管理模块设计 857
23.8.1  部门管理模块概述 857
23.8.2　部门管理模块技术分析 857
23.8.3　部门管理模块实现过程 858
23.9　人员信息管理模块设计 860
23.9.1　人员信息管理模块概述 860
23.9.2　人员信息管理技术分析 860
23.9.3　人员信息管理实现过程 861
23.10  考勤管理模块设计 866
23.10.1　考勤管理模块概述 866
23.10.2　考勤管理模块技术分析 866
23.10.3　考勤管理模块实现过程 867
23.11　考勤汇总查询模块设计 871
23.11.1　考勤汇总查询模块概述 871
23.11.2  考勤汇总查询模块技术分析 872
23.11.3　考勤汇总查询模块实现过程 873
第24堂课  企业短信群发系统 877
视频讲解：83分钟
（本章内容在配书光盘中）
24.1　开发背景 878
24.2　系统分析 878
24.2.1　需求分析 878
24.2.2　可行性分析 878
24.2.3　编写项目计划书 879
24.3　系统设计 881
24.3.1　系统目标 881
24.3.2　系统功能结构图 881
24.3.3　系统预览 882
24.3.4　业务流程图 882
24.3.5　数据库设计 883
24.4　公共类设计 885
24.4.1　自定义SetHBitmap方法 885
24.4.2　处理WM_MOUSEMOVE事件 885
24.5　主窗口设计 886
24.6　短信猫设置模块设计 889
24.6.1　短信猫设置模块概述 889
24.6.2　短信猫设置技术分析 889
24.6.3　短信猫设置实现过程 890
24.7　电话簿管理模块设计 891
24.7.1　电话簿管理模块概述 891
24.7.2　电话簿管理技术分析 892
24.7.3　电话簿管理实现过程 892
24.7.4　单元测试 896
24.8  常用语管理模块设计 897
24.8.1  常用语管理模块概述 897
24.8.2　常用语管理技术分析 898
24.8.3　常用语管理实现过程 899
24.9　短信发送模块设计 902
24.9.1　短信发送模块概述 902
24.9.2　短信发送技术分析 903
24.9.3　短信发送实现过程 903
24.9.4　单元测试 909
24.10  短信接收模块设计 910
24.10.1　短信接收模块概述 910
24.10.2  短信接收技术分析 910
24.10.3  短信接收实现过程 911
24.10.4　单元测试 914
24.11　开发技巧与难点分析 915
24.11.1　显示“收到新信息”对话框 915
24.11.2　制作只允许输入数字的编辑框 917
24.12　短信猫应用 917
24.13　本堂课总结 919