标题：Visual C++从入门到精通（视频实战版）
基本信息
作者： 祝明慧    车玉生    
丛书名： 程序员书库 
出版社：机械工业出版社 
ISBN：9787111325710
上架时间：2011-1-21
出版日期：2011 年1月
开本：16开
页码：442
内容简介
vc是微软公司精心打造的集成开发环境，使用vc 6.0可以自由地开发mfc应用程序、win32应用程序、dll组件和web服务程序等。本书通过五篇来详解vc工具和c++语言。第一篇介绍了vc开发环境和c++语法基础。第二篇介绍了mfc基础知识，如消息映射、gdi函数、对话框、activex控件等。第三篇更深入地介绍了mfc的一些专业开发知识，如菜单栏、工具栏、状态栏、文档视图、打印、上下文相关帮助、动态链接库（dll）等。第四篇讲解了自动化、组件对象模型、ole db等vc的高级应用。第五篇是应用项目的实践，包括数据库开发基础和网络开发基础，还给出了3个案例的开发过程。
本书详细介绍了使用vc进行c++程序设计的技巧，从c++语言理论讲解，到mfc库的使用和com组件等扩展知识的剖析，突出了理论严谨性和程序实用性。本书包含大量实例，详细描述实例开发过程，挖掘理论实践要点。本书适合需要利用vc 6.0进行应用程序开发的读者阅读，也可以作为开发人员的参考手册，以便随时进行查阅。 
目录
丛书序 
前言 
第一篇 c++、vc 6.0和应用程序框架基础 
第1章 vc 6.0开发环境和应用程序框架 1 
1.1 安装并使用vc 6.0 1 
1.1.1 什么是vc 6.0集成开发环境 1 
1.1.2 安装vc 6.0 2 
1.1.3 vc 6.0开发环境的主界面 4 
1.1.4 使用向导创建vc 6.0应用程序项目 5 
1.2 认识vc 6.0 7 
1.2.1 c/c++编译器及编译过程 7 
1.2.2 编辑器 8 
1.2.3 资源编辑器和资源符号 8 
1.2.4 连接器和调试器 9 
1.2.5 学习vc 6.0的主要菜单功能 9 
1.2.6 项目和解决方案 15 
1.2.7 本机帮助和联机帮助 15 
1.3 win32基本应用程序的创建 16 
1.3.1 使用appwizard应用程序向导创建win32程序 16 
1.3.2 生成win32应用程序 17 
.1.3.3 vc 6.0的调试：变量跟踪和函数调用栈 21 
1.4 microsoft应用程序框架 22 
1.4.1 全局对象 22 
1.4.2 mfc的消息映射和消息分类 23 
1.5 实例1.1—编写第一个c++程序：hello, c++! 23 
1.6 实例1.2—创建第一个mfc程序：hello, mfc! 25 
1.7 小结 26 
1.8 常见面试题分析 26 
1.9 本章习题 26 
第2章 c++语法基础 27 
2.1 认识c++开发语言 27 
2.1.1 c++的由来 27 
2.1.2 使用c++语言的优势 28 
2.2 数据类型定义和使用 28 
2.2.1 变量 28 
2.2.2 数据类型 29 
2.2.3 算术运算符 32 
2.2.4 枚举、指针和数组 33 
2.2.5 string类和c风格字符串 36 
2.2.6 结构体类型 38 
2.2.7 类类型 39 
2.2.8 实例2.1—成绩管理系统（1.0版） 43 
2.3 运算符、表达式和语句 46 
2.3.1 “[[”和“]]”运算符 47 
2.3.2 “++”和“--”运算符 47 
2.3.3 循环语句：for语句、while语句和do...while语句 48 
2.3.4 判断语句：if语句和switch语句 50 
2.3.5 实例2.2—成绩管理系统（2.0版） 54 
2.4 函数定义和调用 57 
2.4.1 定义函数和函数原型 57 
2.4.2 函数通过指针来调用数组 58 
2.4.3 函数指针 59 
2.4.4 具有引用参数的函数 60 
2.4.5 函数重载 62 
2.4.6 函数模板的定义和使用 63 
2.4.7 实例2.3—成绩管理系统（3.0版） 64 
2.5 类的定义和对象构造 67 
2.5.1 自然界中的类型和c++的类定义 67 
2.5.2 实现类成员函数 69 
2.5.3 实例化类对象并使用 71 
2.5.4 类的构造函数和析构函数 71 
2.5.5 运算符重载与this指针的使用 74 
2.5.6 友元函数和友元类 75 
2.5.7 实例2.4—成绩管理系统（4.0版） 78 
2.6 类继承 82 
2.6.1 is-a关系 82 
2.6.2 多态公有继承 84 
2.6.3 protected访问控制 86 
2.6.4 抽象基类 87 
2.6.5 私有继承和保护继承 88 
2.6.6 多继承 88 
2.6.7 类模板 89 
2.7 c++异常机制 90 
2.7.1 异常处理类型 90 
2.7.2 exception类 92 
2.8 标准模板库（stl） 93 
2.8.1 auto_ptr类的使用 93 
2.8.2 vector模板类的定义和使用 93 
2.8.3 通用算法 95 
2.8.4 实例2.5—成绩管理系统（5.0版） 96 
2.9 i/o流和文件 101 
2.9.1 c++的输入和输出 101 
2.9.2 文件输入和输出 101 
2.9.3 实例2.6—在vc 6.0中创建c++源文件，使用磁盘文件读写 102 
2.10 小结 103 
2.11 常见面试题分析 104 
2.12 本章习题 105 
第二篇 mfc基础 
第3章 windows消息映射 107 
3.1 视图类 107 
3.1.1 什么是视图 107 
3.1.2 mfc程序中的视图类 107 
3.2 应用程序的类型 108 
3.3 资源编辑器 109 
3.4 mfc应用程序中的各种子功能 110 
3.5 消息映射函数和windows映射模式 113 
3.5.1 获取用户单击和输入 113 
3.5.2 mm_text映射模式 113 
3.5.3 固定比例映射模式 114 
3.5.4 可变比例映射模式 114 
3.5.5 坐标转换 114 
3.6 其他windows消息 115 
3.7 实例3.1—消息映射函数的使用 115 
3.8 小结 118 
3.9 常见面试题分析 118 
3.10 本章习题 119 
第4章 gdi函数 120 
4.1 设备环境类 120 
4.1.1 认识cdc类 120 
4.1.2 cdc派生类：cpaintdc类 120 
4.1.3 cdc派生类：cclientdc类 121 
4.1.4 cdc类对象的行为函数 121 
4.2 gdi对象的构造和使用 123 
4.3 字体选择和显示 124 
4.4 实例4.1—字体的使用 124 
4.5 gdi位图和dib位图 126 
4.6 实例4.2—位图的使用 127 
4.7 小结 130 
4.8 常见面试题分析 131 
4.9 本章习题 131 
第5章 对话框 132 
5.1 两种不同类型的对话框 132 
5.2 实例5.1—计算器软件的开发 132 
5.3 实例5.2—模式对话框的创建和使用 136 
5.4 windows通用对话框 139 
5.4.1 cfiledialog类—文件打开对话框的使用 139 
5.4.2 ccolordialog类—调色板对话框的使用 140 
5.4.3 cfindreplacedialog类—字词查找和替换对话框的使用 141 
5.4.4 cpagesetupdialog类—页面设置对话框的使用 142 
5.4.5 cfontdialog类—字体设置对话框的使用 142 
5.4.6 cprintdialog类—打印设置对话框的使用 143 
5.5 无模式对话框 144 
5.6 小结 145 
5.7 常见面试题分析 145 
5.8 本章习题 146 
第6章 控件 147 
6.1 vc 6.0资源和通用控件 147 
6.2 vc 6.0的控件工具箱 147 
6.3 实例6.1—简单控件的使用 149 
6.4 标准通用控件 152 
6.4.1 进度指示器控件 152 
6.4.2 滑块控件 152 
6.4.3 列表控件 153 
6.4.4 树状控件 153 
6.5 实例6.2—标准通用控件的使用 154 
6.6 实例6.3—成绩管理系统（6.0版－windows版） 157 
6.7 小结 170 
6.8 常见面试题分析 170 
6.9 本章习题 171 
第7章 windows的基本输入 172 
7.1 键盘消息及其处理 172 
7.1.1 键盘消息的处理 172 
7.1.2 键盘消息处理函数 173 
7.1.3 实例7.1—键盘消息处理 174 
7.2 鼠标消息及其处理 177 
7.2.1 鼠标消息的处理 177 
7.2.2 鼠标消息处理函数 178 
7.2.3 实例7.2—鼠标消息处理（五子棋游戏） 179 
7.3 小结 190 
7.4 常见面试题分析 190 
7.5 本章习题 191 
第8章 activex控件 192 
8.1 activex控件的特殊性 192 
8.1.1 activex控件和普通控件的相同点 192 
8.1.2 activex控件和普通控件的不同点 192 
8.2 安装activex控件 193 
8.3 实例8.1—activex控件：日历控件的创建 194 
8.4 activex控件在web编程中的使用 195 
8.5 图形属性和变化通知 196 
8.6 小结 196 
8.7 常见面试题分析 196 
8.8 本章习题 197 
第三篇 深入学习mfc 
第9章 菜单和框架窗口 199 
9.1 windows应用程序的框架窗口 199 
9.2 windows菜单和mfc菜单编辑器 200 
9.3 windows应用程序的快捷键 200 
9.4 命令处理的使用 201 
9.5 富文本编辑 202 
9.5.1 编辑视图类：ceditview类 202 
9.5.2 富文本编辑视图类：cricheditview类 202 
9.5.3 富文本编辑控件类：cricheditctrl类 203 
9.6 实例9.1—快捷键和文本编辑使用 203 
9.6.1 基本框架和界面实现 203 
9.6.2 快捷键设计 205 
9.6.3 存储和显示文档类中的文本 205 
9.6.4 选项卡对话框的设计 206 
9.6.5 视图类的功能实现 208 
9.6.6 运行效果和实践小结 210 
9.7 属性表的开发过程 210 
9.8 鼠标右键调用的浮动快捷菜单 211 
9.9 cpersistentframe持续信息类的使用 212 
9.10 使用activateframe()成员函数设置窗口尺寸和位置 213 
9.11 创建窗口之前的工作：precreatewindow成员函数 213 
9.12 控制栏状态和windows注册表 214 
9.13 mdi应用程序和持续框架 214 
9.14 小结 215 
9.15 常见面试题分析 215 
9.16 本章习题 216 
第10章 工具栏和状态栏 217 
10.1 mfc应用程序框架和控制栏 217 
10.2 工具栏按钮 217 
10.2.1 工具栏位图和按钮的状态 218 
10.2.2 命令消息和更新命令控制函数 218 
10.3 工具栏提示信息 219 
10.4 实例10.1—使用工具栏的应用程序 219 
10.5 状态栏的定义和显示 222 
10.5.1 状态栏的定义 222 
10.5.2 信息行的显示 223 
10.5.3 状态指示器 223 
10.6 实例10.2—使用状态栏的程序设计 224 
10.7 小结 225 
10.8 常见面试题分析 226 
10.9 本章习题 228 
第11章 文档和视图的分离 229 
11.1 文档和视图相互作用的函数 229 
11.1.1 获取当前文档：cview::getdocument()函数 229 
11.1.2 更新所有视图：cdocument::updateallviews()函数 230 
11.1.3 视图自我更新：cviews::onupdate()函数 230 
11.1.4 初始化更新界面：cview::oninitialupdate()函数 230 
11.1.5 创建新文档：cdocument::onnewdocument()函数 230 
11.2 一个简单的文档视图应用程序的创建和分析 230 
11.3 cview类的派生类 231 
11.4 mfc类家族的始祖—cobject类 232 
11.5 诊断信息转储基础 232 
11.5.1 trace宏的使用 232 
11.5.2 afxdump对象的使用 233 
11.5.3 mfc的信息转储环境 233 
11.6 实例11.1—使用诊断信息进行文档视图交互 235 
11.6.1 项目创建和界面设计 235 
11.6.2 cworker类的设计 236 
11.6.3 诊断信息和文档视图交互功能的实现 239 
11.7 高级的文档和视图交互 241 
11.8 coblist集合类 242 
11.9 实例11.2—一个多视图的sdi应用程序 244 
11.9.1 项目创建和界面设计 244 
11.9.2 编写文档代码 244 
11.9.3 编写视图代码 245 
11.10 小结 247 
11.11 常见面试题分析 247 
11.12 本章习题 249 
第12章 文档的读和写 250 
12.1 序列化理论 250 
12.1.1 磁盘文件和内存文件 250 
12.1.2 类的序列化 251 
12.1.3 编写serialize()函数 251 
12.2 windows应用程序对象 252 
12.3 实例12.1—支持序列化的应用程序 252 
12.3.1 创建支持序列化的mfc应用程序 253 
12.3.2 重写cobject基类的序列化函数 253 
12.3.3 编写界面功能 254 
12.3.4 开发序列化和反序列化功能 255 
12.4 应用程序在windows中注册 257 
12.5 mdi应用程序 258 
12.5.1 mdi应用程序对象 258 
12.5.2 mdi文档模板类 258 
12.5.3 mdi窗口类型 258 
12.5.4 创建文档 259 
12.6 实例12.2—mdi应用程序的创建 259 
12.7 mti支持 260 
12.8 小结 261 
12.9 常见面试题分析 261 
12.10 本章习题 262 
第13章 切分窗口和多视图 263 
13.1 动态和静态切分窗口 263 
13.2 关于视图的选择 263 
13.3 实例13.1—简单动态切分窗口应用程序的创建 264 
13.4 实例13.2—多视图的静态切分窗口的开发 266 
13.5 实例13.3—多视图切换的开发 268 
13.6 小结 270 
13.7 常见面试题分析 270 
13.8 本章习题 271 
第14章 打印功能 272 
14.1 windows环境下的打印功能 272 
14.2 打印预览 272 
14.3 打印程序设计的相关接口 273 
14.3.1 打印机设备环境 273 
14.3.2 打印函数：cview::onprint()函数 273 
14.3.3 打印程序的执行过程 273 
14.4 实例14.1—打印应用程序的创建和使用 274 
14.5 实例14.2—多页打印应用程序的创建和使用 277 
14.6 小结 280 
14.7 常见面试题分析 280 
14.8 本章习题 281 
第15章 上下文相关帮助 282 
15.1 简易winhelp的制作 282 
15.2 应用程序框架winhelp 284 
15.2.1 调用winhelp 284 
15.2.2 使用搜索功能 284 
15.2.3 消息框帮助 285 
15.3 实例15.1—帮助示例 285 
15.4 帮助快捷键和菜单命令 287 
15.4.1 使用f1快捷键 287 
15.4.2 通过菜单命令调用帮助过程 287 
15.5 小结 288 
15.6 常见面试题分析 288 
15.7 本章习题 288 
第16章 动态链接库（dll） 289 
16.1 dll理论基础 289 
16.1.1 dll导入和导出的原理 290 
16.1.2 隐式和显式连接 290 
16.1.3 符号和序号连接 290 
16.1.4 dllmain()函数 291 
16.2 正规的mfc dll和扩展的mfc dll 291 
16.2.1 正规的dll 291 
16.2.2 扩展的dll 293 
16.3 自定义控件dll 294 
16.4 实例16.1—创建和使用自定义控件dll 295 
16.4.1 创建项目 296 
16.4.2 添加功能代码 296 
16.4.3 创建客户程序测试自定义控件 298 
16.5 小结 299 
16.6 常见面试题分析 300 
16.7 本章习题 300 
第17章 mfc类家族 301 
17.1 mfc类家族结构 301 
17.2 mfc运行机制 302 
17.3 mfc家族分支 303 
17.3.1 cview视图类分支 303 
17.3.2 cdc画图类分支 304 
17.3.3 cexception异常类分支 305 
17.3.4 cgdiobject类分支 306 
17.3.5 套接字类分支 307 
17.4 非cobject派生类 307 
17.4.1 简单类型类 307 
17.4.2 internet server api类 308 
17.5 小结 308 
17.6 常见面试题分析 309 
17.7 本章习题 309 
第四篇 自动化、com和ole db 
第18章 自动化 311 
18.1 什么是vba 311 
18.2 vba与c++组件 312 
18.3 自动化接口 312 
18.4 mfc自动化组件 313 
18.5 实例18.1—mfc自动化的使用 314 
18.5.1 创建mfc dll自动化项目 315 
18.5.2 添加自动化类和成员函数 315 
18.5.3 在windows中注册自定义的动态链接库 317 
18.5.4 使用非vc应用程序调用自定义dll 318 
18.5.5 实例小结 319 
18.6 variant类型 319 
18.7 封装variant类型：colevariant类 321 
18.8 实例18.2—使用excel自动化的实例 322 
18.8.1 准备工作：创建mfc 323 
18.8.2 加入自动化代码 323 
18.8.3 添加组件类 324 
18.8.4 编写客户端宏脚本 325 
18.9 小结 327 
18.10 常见面试题分析 327 
18.11 本章习题 328 
第19章 组件对象模型（com） 329 
19.1 什么是com 329 
19.2 com接口 330 
19.3 实例19.1—com的使用 331 
19.3.1 使用vc 6.0创建atl com应用程序 332 
19.3.2 创建新的atl对象 332 
19.3.3 实现_idtextensibility2接口 333 
19.3.4 通知office并加载组件接口 333 
19.3.5 导入office接口文件 334 
19.3.6 完成功能代码 335 
19.3.7 运行效果和小结 337 
19.4 com的包容、集合和继承 337 
19.5 小结 338 
19.6 常见面试题分析 338 
19.7 本章习题 338 
第20章 ole db 339 
20.1 ole db对象模型 339 
20.2 ole db模板的基本结构 340 
20.3 ole db客户数据库访问的两种途径 341 
20.3.1 以mfc appwizard（exe）为向导建立ole db客户程序框架 341 
20.3.2 以atl com appwizard为向导建立ole db客户程序框架 343 
20.4 小结 345 
20.5 常见面试题分析 346 
20.6 本章习题 346 
第五篇 软件研发实践 
第21章 数据库编程基础 347 
21.1 数据库开发技术简介 347 
21.1.1 当今常用的几种数据库管理系统（dbms） 347 
21.1.2 关系代数与数据库sql语言 348 
21.1.3 规范化和数据库表设计常见的问题 350 
21.1.4 ado、dao和odbc技术简介 351 
21.2 在vc 6.0中使用odbc进行数据库链接 352 
21.2.1 odbc概述 352 
21.2.2 odbc类的使用 352 
21.2.3 odbc数据库操作 354 
21.3 在vc 6.0中使用ado进行数据库链接 355 
21.3.1 ado概述 355 
21.3.2 ado连接应用 356 
21.3.3 ado数据库操作 357 
21.4 小结 359 
21.5 常见面试题分析 359 
21.6 本章习题 360 
第22章 网络编程基础 361 
22.1 tcp/ip协议简介 361 
22.2 windows sockets基础 362 
22.2.1 套接字概述 363 
22.2.2 winsock api常用函数 363 
22.2.3 mfc对winsock api的封装 364 
22.3 b/s模式和c/s模式 364 
22.3.1 什么是b/s和c/s模式 364 
22.3.2 c/s与b/s的区别 365 
22.4 局域网技术 366 
22.4.1 网卡地址 366 
22.4.2 获取计算机名称和ip 366 
22.5 信息打包和发送 367 
22.6 小结 368 
22.7 常见面试题分析 368 
22.8 本章习题 369 
第23章 多线程http下载工具制作 370 
23.1 案例效果图 370 
23.2 案例需求 370 
23.3 需要掌握的知识点 370 
23.4 mfc中的wininet 371 
23.4.1 使用mfc wininet下载文件过程 371 
23.4.2 实例23.1—简单使用mfc wininet读取网页源代码 372 
23.4.3 实例解析 374 
23.5 ie右键菜单原理 376 
23.5.1 ie右键菜单对应的注册表 376 
23.5.2 编写javascript启动程序 376 
23.6 开发过程 379 
23.6.1 获得命令行参数 379 
23.6.2 多线程下载类设计 379 
23.6.3 使用cdownloadthreadmanager下载资源 387 
23.6.4 统计下载速度与下载用时 391 
23.7 小结 392 
第24章 远程控制软件制作 393 
24.1 案例效果图 393 
24.2 案例需求和知识点 393 
24.2.1 案例需求 393 
24.2.2 需要掌握的知识点 393 
24.3 图像传输优化方法 394 
24.4 模拟鼠标动作 394 
24.5 开发过程 395 
24.5.1 服务器端结构分析 395 
24.5.2 服务器端gdi结构与链表设计 395 
24.5.3 初始化gdi链表与清理gdi链表 397 
24.5.4 启动服务接收网络事件 399 
24.5.5 保证发送接收大小 401 
24.5.6 通信协议设计 402 
24.5.7 发送图像数据 403 
24.5.8 客户端结构分析 408 
24.5.9 客户端创建 408 
24.5.10 客户端gdi结构与链表设计 409 
24.5.11 连接服务器 410 
24.5.12 获取及显示远程图像 412 
24.5.13 发送鼠标事件 416 
24.6 小结 417 
第25章 学生成绩管理系统开发 418 
25.1 系统结构分析 418 
25.2 案例需求 418 
25.3 数据库设计 419 
25.4 案例效果图 422 
25.5 需要掌握的知识点 424 
25.6 使用datagrid控件显示数据 424 
25.6.1 添加datagrid控件 424 
25.6.2 程序中使用datagrid控件 425 
25.7 开发过程 425 
25.7.1 准备工作 426 
25.7.2 登录窗口 426 
25.7.3 主窗口 428 
25.7.4 管理成绩信息窗口 430 
25.7.5 管理分数对话框 433 
25.7.6 审核窗口 438 
25.8 小结 442