标题：Visual C++宝典
图书信息
出版社: 电子工业出版社; 第1版 (2011年1月1日)
丛书名: 宝典丛书
平装: 763页
正文语种: 简体中文
开本: 16
ISBN: 7121124378, 9787121124372
条形码: 9787121124372
尺寸: 26.4 x 19.2 x 3.6 cm
重量: 1.4 Kg
内容简介
c++语言是从c语言发展而来的一种面向对象的高级语言，而visual c++则是c/c++ ide，即集成开发环境。《Visual C++宝典》从c++基础开始讲解，由原理到实践、由浅到深、全面地介绍了在visual c++环境下，如何利用c++语言编写windows应用程序。
《Visual C++宝典》分为4部分，包括33章。第1部分是visual c++编程入门介绍，介绍了windows编程的入门知识和c++语言的一些基础知识；第2部分是visual c++分类应用程序编程介绍，包括windows应用编程和控制台程序，以及在visual c++下如何编写win32程序、对话框程序、单文档与多文档程序、动态链接库和activex控件程序；第3部分是visual c++功能应用程序介绍，在本部分中，讲解了visual c++下最常见的操作编程，包括文件操作、数据处理、系统时间、错误与异常处理、多线程技术、定时器、输入输出设备、串口编程、网络编程、数据库编程、windows内存管理、程序调试以及网络安全等；第4部分介绍了visual c++的一些杂项编程，包括界面控制、office文件的读写操作、文件与文件夹、程序控制以及系统控制等。
《Visual C++宝典》内容丰富、实用性强，许多代码可以直接应用到工程项目中，它适合于visual c++ 6.0的初学者和使用visual c++从事开发的程序员使用，对于具有一定visual c++编程经验的读者，《Visual C++宝典》也是非常好的参考书。
目录
第1部分 visual c++编程入门 1 
第1章 windows编程入门 2 
1.1 windows开发简介 2 
1.1.1 windows应用编程接口（api） 2 
1.1.2 软件开发工具包（sdk） 3 
1.2 windows编程基础知识 3 
1.2.1 windows编程的基本概念 3 
1.2.2 windows应用程序框架结构 6 
1.3 visual c++编程库概要 12 
1.3.1 c++标准库 12 
1.3.2 c运行时（crt）库 15 
1.3.3 活动模板库（atl） 15 
1.3.4 微软基础库（mfc） 16 
1.4 visual c++ 6.0使用介绍 16 
1.4.1 visual c++ 6.0简介 16 
1.4.2 visual c++ 6.0集成开发环境 17 
1.4.3 visual c++ 6.0编程操作介绍 27 
1.5 小结 31 
第2章 c++编程基础 33 
2.1 类和数据抽象 33 
2.1.1 如何抽象数据为类 33 
2.1.2 类与结构体 35 
2.1.3 类的访问权限 36 
2.1.4 构造函数与析构函数 37 
2.2 类的继承 40 
2.2.1 子类如何继承父类 41 
2.2.2 子类对父类的访问权限 42 
2.2.3 多态 43 
2.3 函数和运算符的重载 45 
2.3.1 函数重载 45 
2.3.2 运算符重载 46 
2.4 函数和类的模板 49 
2.4.1 创建函数模板 50 
2.4.2 函数模板的调用 52 
2.4.3 创建类模板 53 
2.4.4 类模板调用 54 
2.5 小结 56 
第2部分 visual c++分类应用编程 57 
第3章 窗口和窗口消息 58 
3.1 窗口和窗口类 58 
3.1.1 cobject、ccmdtarget和cwnd类简介 58 
3.1.2 mfc创建一个窗口 61 
3.1.3 窗口显示与隐藏 64 
3.1.4 设置窗口的位置和大小 64 
3.2 窗口消息 66 
3.2.1 窗口消息概况 67 
3.2.2 窗口移动以及大小改变 67 
3.2.3 按键消息 70 
3.2.4 鼠标消息 73 
3.2.5 自定义发送窗口消息 76 
3.3 小结 80 
第4章 win32应用程序和控制台程序 81 
4.1 win32应用程序和控制台程序简介 81 
4.2 win32应用程序编程 81 
4.2.1 win32应用程序编程必备知识 81 
4.2.2 win32应用程序简例 83 
4.2.3 常见消息处理 85 
4.2.4 在win32应用程序中加入控件 87 
4.2.5 在win32应用程序中加入对话框 89 
4.3 win32控制台程序编程 91 
4.3.1 win32控制台程序简例 91 
4.3.2 控制台程序的输出控制 93 
4.3.3 操作控制台 95 
4.4 小结 98 
第5章 gdi绘图 99 
5.1 cdc类介绍 99 
5.1.1 cdc类 99 
5.1.2 cdc类的派生类 101 
5.2 画笔和画刷 101 
5.2.1 画笔 101 
5.2.2 画刷 102 
5.3 图形绘制 104 
5.3.1 点的绘制 104 
5.3.2 直线的绘制 105 
5.3.3 矩形的绘制 105 
5.3.4 椭圆的绘制 109 
5.4 文字绘制 109 
5.4.1 绘制文字的函数 110 
5.4.2 文字的背景色和前景色 112 
5.4.3 文字的字体 113 
5.5 位图显示 116 
5.5.1 位图介绍 117 
5.5.2 位图显示 118 
5.5.3 实例：桌面涂鸦 119 
5.6 小结 125 
第6章 mfc控件 126 
6.1 mfc控件简介 126 
6.1.1 什么是mfc 126 
6.1.2 控件简介 127 
6.2 mfc控件介绍 127 
6.2.1 按钮控件 128 
6.2.2 静态控件 130 
6.2.3 文本框控件 132 
6.2.4 下拉列表框 135 
6.2.5 列表框 138 
6.2.6 列表视图控件 140 
6.2.7 树视图控件 143
6.3 控件编程 145 
6.3.1 实例：文本框控件的使用 146 
6.3.2 实例：下拉列表框控件的使用 147 
6.3.3 实例：列表框控件的使用 148 
6.3.4 实例：列表视图控件的使用 150 
6.4 小结 152 
第7章 动态链接库（dll） 154 
7.1 动态链接库程序架构 154 
7.1.1 dll的入口 154 
7.1.2 lib文件 155 
7.1.3 def文件 156 
7.1.4 头文件 157 
7.2 non-mfc dll 159 
7.2.1 non-mfc dll编写规范说明 159 
7.2.2 实例：non-mfc dll例子程序 160 
7.3 mfc规则dll 161 
7.3.1 mfc规则dll编写规范说明 162 
7.3.2 实例：mfc规则dll例子程序 163 
7.4 mfc扩展dll 164 
7.4.1 mfc扩展dll编写规范说明 164 
7.4.2 实例：mfc扩展dll例子程序 166 
7.5 调用dll 167 
7.5.1 隐式调用 167 
7.5.2 实例：隐式调用dll例子程序 168 
7.5.3 显式调用 170 
7.5.4 实例：显式调用dll例子程序 171 
7.6 小结 175 
第8章 单文档应用程序（sdi） 176 
8.1 单文档的基本组成 176 
8.1.1 单文档结构概述 176 
8.1.2 单文档中文档和视图的创建 177 
8.1.3 文档类 177 
8.1.4 视图类 179 
8.1.5 框架类 180 
8.2 单文档的主要编程技巧 180 
8.2.1 切分窗口 181 
8.2.2 单文档中显示位图 184
8.3 工具栏、状态栏和菜单 187 
8.3.1 工具栏 187 
8.3.2 状态栏 191 
8.3.3 菜单 193 
8.4 小结 197 
第9章 多文档应用程序（mdi） 199 
9.1 多文档应用程序的结构 199 
9.1.1 多文档应用程序典型结构 199 
9.1.2 mdi多文档模板应用程序 201 
9.1.3 无视图的mdi应用程序 203 
9.2 多文档的主要编程技巧 204 
9.2.1 实例：mdi应用程序启动时子窗口默认最大化 205 
9.2.2 实例：创建带滚动条的窗体 206 
9.2.3 实例：mdi应用程序启动时主窗口默认最大化 207 
9.2.4 实例：保存窗口状态 208
9.3 小结 210 
第10章 对话框应用程序 211 
10.1 对话框应用程序架构 211 
10.1.1 无模式对话框 211 
10.1.2 模式对话框 213 
10.1.3 对话框数据的交换和验证 214 
10.1.4 使用对话框的一个实例 215 
10.2 通用对话框 220 
10.2.1 文件选择对话框 221 
10.2.2 颜色选择对话框 223 
10.2.3 查找和替换对话框 224 
10.2.4 打印对话框 225 
10.2.5 打印页面设置对话框 226 
10.2.6 字体选择对话框 227 
10.2.7 选择多个文件的实例 228 
10.3 创建一个不规则形状窗体 230 
10.4 小结 234 
第11章 gdi+基础编程 236 
11.1 gdi+的基本图形绘制 236 
11.1.1 直线与曲线 236 
11.1.2 矩形与椭圆 237 
11.1.3 弧与扇形 239 
11.2 gdi+显示图片 241 
11.2.1 显示图片 241 
11.2.2 显示动态gif图片 243 
11.3 gdi+画笔与画刷 246 
11.3.1 画笔 246 
11.3.2 画刷 248 
11.4 图像处理技巧 249 
11.4.1 半透明图像 249 
11.4.2 图形的大小、平移和旋转 252 
11.5 小结 254 
第12章 activex控件 256 
12.1 activex控件的概要介绍 256 
12.1.1 activex程序的基本结构 256 
12.1.2 activex控件分类 257 
12.1.3 activex程序的开发 257 
12.2 activex控件的开发范例 259 
12.2.1 在网页上显示activex控件 259 
12.2.2 在网页中显示带控件的activex控件 262 
12.2.3 通过网页向activex控件传递参数 263 
12.2.4 实现activex控件的事件 265 
12.3 小结 267 
第3部分 visual c++功能应用编程 269 
第13章 文件操作 270 
13.1 读写文件 270 
13.1.1 使用windows api 270 
13.1.2 使用c运行时库 273 
13.1.3 使用cfile类 275 
13.1.4 使用cstdiofile类 277 
13.1.5 案例：使用4种文件操作方式读写文件 278 
13.2 读写ini文件 283 
13.2.1 使用windows api 283 
13.2.2 案例：使用api函数读写ini文件 284 
13.3 读写注册表 287 
13.3.1 使用windows api 287 
13.3.2 使用cregkey类 291 
13.3.3 实例：使用两种方式对注册表进行操作 295 
13.4 小结 300 
第14章 数据处理 301 
14.1 字符串处理 301 
14.1.1 分割字符串 301 
14.1.2 自定义格式化字符串 304 
14.1.3 实例：字符串处理例子程序 306 
14.2 格式转换 309 
14.2.1 数值型与字符串型的转换 310 
14.2.2 大写与小写的转换 311 
14.2.3 unicode编码简介 313 
14.2.4 unicode配置开发环境 314 
14.2.5 实例：格式转换例子程序 316 
14.3 小结 320 
第15章 系统时间 322 
15.1 使用windows api 322 
15.1.1 使用windows api函数 322 
15.1.2 实例：基于windows api的系统时间例子程序 323
15.2 使用c运行时库 327 
15.2.1 时间格式分类 327 
15.2.2 时间格式的转换 329 
15.2.3 实例：基于c运行时库的系统时间程序 333
15.3 使用mfc类 335 
15.3.1 ctime与ctimespan 335 
15.3.2 coledatetime与coledatetimespan 337 
15.3.3 实例：基于mfc类的系统时间程序 339 
15.4 小结 343 
第16章 错误与异常处理 345 
16.1 错误处理 345 
16.1.1 windows api的错误处理 345 
16.1.2 用户程序的错误处理 347 
16.1.3 实例：错误处理程序 351 
16.2 异常处理 356 
16.2.1 异常的抛出 358 
16.2.2 异常的捕获 361 
16.2.3 异常的处理 363 
16.2.4 实例：异常处理程序 364 
16.3 小结 368 
第17章 多线程 370 
17.1 单线程与多线程 370 
17.2 辅助线程与主线程 371 
17.2.1 辅助线程的开启 371 
17.2.2 辅助线程的结束 374 
17.2.3 辅助线程一般的代码结构 374 
17.3 线程的通信与同步 376 
17.3.1 全局变量 377 
17.3.2 事件 377 
17.3.3 自定义消息 378 
17.3.4 信号量 380 
17.3.5 临界区 381 
17.3.6 互斥 382 
17.3.7 实例：线程通信与同步程序 383 
17.4 共享数据保护 389 
17.4.1 什么是共享数据 389 
17.4.2 如何保护共享数据 390 
17.4.3 实例：线程共享数据例子程序 391 
17.5 线程与进程的优先级 396 
17.5.1 优先级的意义 396 
17.5.2 进程的优先级 397 
17.5.3 线程的优先级 398 
17.5.4 实例：线程与进程优先级例子程序 399 
17.6 小结 407 
第18章 定时器 409 
18.1 定时器介绍 409 
18.2 一般定时器 410 
18.2.1 定时器的创建 410 
18.2.2 定时器的销毁 412 
18.2.3 定时器的计时方式 412 
18.2.4 实例：一般定时器例子程序 412 
18.3 多媒体定时器 417 
18.3.1 多媒体定时器的计时方式 417 
18.3.2 多媒体定时器创建 417 
18.3.3 多媒体定时器的回调函数 419 
18.3.4 实例：多媒体定时器程序 420 
18.4 自定义定时器 425 
18.5 小结 428 
第19章 消息处理 429 
19.1 消息概要介绍 429 
19.1.1 消息结构 429 
19.1.2 消息分类 430 
19.1.3 消息队列 432 
19.1.4 消息的发送 433 
19.1.5 消息的接收 436 
19.2 windows消息处理 438 
19.3 自定义消息 440 
19.3.1 使用on_message 440 
19.3.2 使用on_registered_message 441 
19.4 实例：自定义消息例子程序 442 
19.5 小结 447 
第20章 输入设备控制 449 
20.1 主要的输入设备 449 
20.1.1 鼠标输入设备 449 
20.1.2 键盘输入设备 450 
20.2 鼠标输入方法 450 
20.2.1 更改鼠标光标 450 
20.2.2 模拟鼠标输入 452 
20.3 键盘输入方法 453 
20.3.1 控制键盘输入 454 
20.3.2 模拟键盘输入 456 
20.4 实例：鼠标与键盘例子程序 457 
20.5 钩子程序 461 
20.5.1 钩子（hook） 461 
20.5.2 实例：键盘钩子例子程序 464 
20.6 小结 467 
第21章 串口编程 468 
21.1 串口编程概要介绍 468 
21.1.1 串口的种类 468 
21.1.2 串口的通信方式 469 
21.1.3 xmodem协议 470 
21.2 使用windows api 472 
21.2.1 串口的打开 472 
21.2.2 串口的初始化 474 
21.2.3 串口通信事件处理 478 
21.2.4 串口数据的收发 480 
21.2.5 串口的超时设置 482 
21.2.6 串口通信状态与通信错误 484 
21.2.7 实例：基于windows api的串口例子程序 484 
21.3 使用activex控件 497 
21.3.1 使用mscomm控件 498 
21.3.2 mscomm控件的属性设置 498 
21.3.3 数据的收发 504 
21.3.4 实例：基于mscomm控件的串口例子程序 504 
21.4 小结 507 
第22章 网络编程 509 
22.1 网络编程概要 509 
22.1.1 网络参考模型 509 
22.1.2 通信连接方式 511 
22.1.3 winsock技术 513 
22.2 winsock详解 514 
22.2.1 winsock基本函数讲解 514 
22.2.2 winsock信息获取函数 519 
22.2.3 winsock辅助函数 524 
22.3 tcp程序 527 
22.3.1 tcp概要 527 
22.3.2 tcp客户端与服务端的流程 528 
22.3.3 实例：tcp客户端例子程序 529 
22.3.4 实例：tcp服务器例子程序 530 
22.4 udp程序 532 
22.4.1 udp概要 532 
22.4.2 点对点通信 534 
22.4.3 实例：udp点对点例子程序 534 
22.4.4 广播通信 538 
22.4.5 实例：udp广播例子程序 538 
22.4.6 组播通信 541 
22.4.7 实例：udp组播例子程序 541
22.5 小结 545 
第23章 数据库编程 547 
23.1 常用数据库简介 547 
23.1.1 microsoft office access 547 
23.1.2 microsoft sql server 548 
23.1.3 mysql 549 
23.2 odbc数据库编程 549 
23.2.1 odbc简介 549 
23.2.2 使用cdatabase类 551 
23.2.3 数据库的连接与关闭 552 
23.2.4 使用crecordset类 553 
23.2.5 记录集的建立和关闭 555 
23.2.6 数据的查询 557 
23.2.7 修改、添加和删除记录 558 
23.2.8 使用crecordview类 560 
23.2.9 实例：odbc数据库管理例子程序 562 
23.3 ado数据库编程 571 
23.3.1 ado技术简介 571 
23.3.2 引用ado库的3种方式 571 
23.3.3 数据库的连接与关闭 573 
23.3.4 执行sql命令 575 
23.3.5 获取记录集 577 
23.3.6 添加、删除和修改记录 580 
23.3.7 实例：ado数据库管理例子程序 581 
23.4 小结 587 
第24章 内存管理 588 
24.1 windows内存管理 588 
24.1.1 虚拟内存 588 
24.1.2 内存映射文件 591 
24.1.3 内存堆栈 595 
24.2 c/c++的内存操作 597 
24.2.1 c的内存操作 597 
24.2.2 c++的内存操作 600 
24.3 内存优化 602 
24.3.1 防止内存泄露 602 
24.3.2 防止访问内存违例 604 
24.4 小结 606 
第25章 程序调试 607 
25.1 调试器 607 
25.1.1 vc6.0自带调试器 607 
25.1.2 调试工具windbg 612 
25.2 程序调试排错的一般方法 615 
25.2.1 程序的错误分类 616 
25.2.2 排错过程的常用小工具 617
25.3 windbg调试实例 619 
25.4 小结 622 
第26章 网络安全 623 
26.1 网络安全简介 623 
26.2 网络安全重要性 624 
26.3 网络安全方法 624 
26.3.1 物理安全策略 624 
26.3.2 访问控制 625 
26.3.3 信息加密策略 626 
26.3.4 防火墙控制 626 
26.4 黑客与病毒防范 627 
26.4.1 黑客及防范技术 627 
26.4.2 病毒简介 629 
26.5 案例：进程注入技术实例 630 
26.6 小结 637 
第27章 windows拖放协议 638 
27.1 拖放介绍 638 
27.2 拖放方法 638 
27.2.1 文件管理器拖放 638 
27.2.2 文件管理器拖放原理与实例 640 
27.2.3 ole拖放原理 641 
27.2.4 ole拖放原理与实例 642
27.3 拖放与剪贴板 645 
27.3.1 剪贴板相关的api函数 645 
27.3.2 使用剪贴板复制文本 647 
27.4 案例：控件之间进行拖放 648 
27.5 小结 652 
第4部分 visual c++编程杂项 653 
第28章 界面控制 654 
28.1 使用托盘图标 654 
28.1.1 托盘图标的介绍 654 
28.1.2 增加托盘图标 656 
28.1.3 为托盘图标添加消息响应 657 
28.1.4 修改托盘图标 660 
28.2 对话框中显示工具栏与状态栏 662 
28.2.1 对话框中显示工具栏 662 
28.2.2 对话框中显示工具栏的例子程序 665 
28.2.3 对话框中显示状态栏 667 
28.2.4 实例：对话框中显示状态栏的例子程序 669 
28.3 控件自绘 671 
28.3.1 文本框控件自绘 671 
28.3.2 颜色间隔的列表视图控件 672 
28.3.3 自绘进度条 675 
28.3.4 显示颜色的下拉列表框控件 678 
28.3.5 自绘列表框控件 680 
28.4 小结 684 
第29章 读写office文件 685 
29.1 ole自动化与vba 685 
29.1.1 ole自动化概述 685 
29.1.2 vba概述 686 
29.2 读写word文件 686 
29.2.1 使用ole自动化接口 686 
29.2.2 实例：word操作 689 
29.3 读写excel文件 692 
29.3.1 使用odbc 692 
29.3.2 使用ole自动化接口 693 
29.3.3 实例：excel操作 694 
29.4 小结 697 
第30章 文件与文件夹 698 
30.1 创建快捷方式 698 
30.1.1 快捷方式概述 698 
30.1.2 创建应用程序快捷方式 698 
30.2 文件与文件夹的复制与删除 701 
30.2.1 使用windows api 701 
30.2.2 使用windows外壳（shell） 703 
30.2.3 实例：文件与文件夹操作例子程序 706 
30.3 系统文件夹与文件 714 
30.3.1 获取windows文件夹 714 
30.3.2 获取system文件夹 715 
30.3.3 获取当前文件夹 716 
30.4 系统临时文件 716 
30.4.1 获取系统临时文件夹——gettemppath函数 717 
30.4.2 获取系统临时——getlongpathname函数 717 
30.5 小结 718 
第31章 程序控制 719 
31.1 只运行一个程序实例 719 
31.1.1 查找窗口控制程序实例 719 
31.1.2 互斥信号量 721 
31.1.3 属性名与属性值 724 
31.1.4 实例：只运行一个实例的例子程序 725
31.2 获取可执行程序的图标 727 
31.3 运行外部程序 728 
31.3.1 api函数介绍 729 
31.3.2 不等待外部程序执行完毕 731 
31.3.3 等待外部程序执行完毕 731 
31.3.4 向外部程序发消息 732 
31.3.5 强制终止外部程序 733 
31.3.6 实例：强制终止例子程序 736 
31.4 小结 738 
第32章 系统控制 739 
32.1 系统控制概要 739 
32.2 关闭与打开显示器 739 
32.2.1 关闭显示器 739 
32.2.2 打开显示器 740 
32.3 关闭与重启系统 741 
32.3.1 关闭系统 741 
32.3.2 重启系统 744 
32.4 获取操作系统版本 745 
32.5 获取系统ip信息 746 
32.6 打开与关闭cd-rom 747 
32.7 实例：系统控制例子程序 748 
32.8 小结 753 
第33章 延时处理 755 
33.1 延时概要 755 
33.1.1 为什么要延时 755 
33.1.2 延时的数量级 755 
33.2 简单的延时处理 758 
33.2.1 使用sleep函数 758 
33.2.2 自己计时的延时处理 758 
33.3 可处理消息的延时处理 759 
33.3.1 使用gettickcount 759 
33.3.2 使用queryperformancecounter 760 
33.4 实例：延时例子程序 761 
33.5 小结 763