Visual C++系统开发实例精粹
作 者: 赵辉,叶子青编著
出版时间:2005
丛编项: 系统开发实例精粹系列丛书
内容简介
本书精选了40多个综合性实例,详细介绍了基于Visual C++的程序开发技巧和方法,内容涵盖了Visual C++的系统编程、界面编程、多媒体编程、数字图像编程、网络通信编程以及数据库/MIS开发等许多热门领域。 每个实例都按照设计思路、编程原理以及实例详解3个步骤进行解说,尤其是对每个实例的原理都进行了详细地说明,对实例的源代码进行了注释。同时在本书的光盘中赠送了大量非常有价值的实例源代码。通过本书的学习,读者可以非常容易地理解并掌握Visual C++开发的核心技术,并根据自身需要进行二次开发。 本书可以作为高等院校相关专业的课程设计、毕业设计的指导用书,同时也可以作为科研单位、企业相关软件开发的技术指导用书。
目录
Part 1 系统编程篇
Example 01 多线程实例 2
1.1 设计思路 2
1.2 编程原理 2
1.3 实例详解 3
1.3.1 关键函数介绍 3
1.3.2 CWorkQueue类介绍 5
1.3.3 多线程编程实现 8
Example 02 动态链接库(DLL)实例 8
2.1 设计思路 8
2.2 编程原理 9
2.2.1 DLL的文件结构与参数传递 9
2.2.2 通过DEF文件从DLL中输出 9
2.3 实例详解 10
Example 03 消息循环重载实例 11
3.1 设计思路 11
3.2 编程原理 11
3.2.1 Windows消息机制原理 11
3.2.2 Windows消息函数 14
3.3 实例详解 15
Example 04 进程查看程序 15
4.1 设计思路 15
4.2 编程原理 16
4.3 实例详解 18
Example 05 文件关联实例 18
5.1 设计思路 18
5.2 编程原理 19
5.3 实例详解 23
Example 06 剪贴板查看器 23
6.1 设计思路 23
6.2 编程原理 24
6.3 实例详解 25
Example 07 键盘发声系统 26
7.1 设计思路 26
7.2 编程原理 26
7.2.1 Windows HOOK技术 26
7.2.2 按键发音原理 28
7.3 实例详解 28
Example 08 运行后自销毁的程序 28
8.1 设计思路 28
8.2 编程原理 28
8.3 实例详解 30
Example 09 文件查找系统 30
9.1 设计思路 30
9.2 编程原理 31
9.2.1 CFileFinder类 31
9.2.2 CFindOpts类 32
9.3 实例详解 33
Example 10 屏幕拷贝实例 33
10.1 设计思路 33
10.2 编程原理 33
10.3 实例详解 34
Example 11 文件分割器 34
11.1 设计思路 34
11.2 编程原理 35
11.3 实例详解 35
Example 12 密码探测器 35
12.1 设计思路 35
12.2 编程原理 36
12.3 实例详解 36
精彩实例赏析 37
Part 2 界面编程篇
Example 13 带微调和滑动条控件的工具栏 42
13.1 设计思路 42
13.2 编程原理 42
13.2.1 CSpinToolBar 42
13.2.2 CSlideToolBar 44
13.3 实例详解 44
Example 14 透明窗体实例 44
14.1 设计思路 44
14.2 编程原理 45
14.3 实例详解 45
Example 15 状态栏中的动画实例 46
15.1 设计思路 46
15.2 编程原理 46
15.3 实例详解 49
Example 16 圆盘式和数字式时钟实例 49
16.1 设计思路 49
16.2 编程原理 49
16.3 实例详解 50
Example 17 Windows XP风格菜单 50
17.1 设计思路 50
17.2 编程原理 51
17.2.1 自绘制菜单基本原理 51
17.2.2 CMenuXP类实现原理 52
17.3 实例详解 54
Example 18 Office XP风格菜单 54
18.1 设计思路 54
18.2 编程原理 55
18.2.1 CMenuXP类实现原理 55
18.2.2 CMenuXP类核心代码 55
18.3 实例详解 62
Example 19 Windows XP风格标题栏 62
19.1 设计思路 62
19.2 编程原理 63
19.3 实例详解 64
Example 20 Windows XP风格对话框 64
20.1 设计思路 64
20.2 编程原理 65
20.2.1 标题栏和对话框边框的
Windows XP风格实现原理 65
20.2.2 按钮的Windows XP风格实现原理 70
20.3 实例详解 73
Example 21 Windows XP风格按钮和滚动条 73
21.1 设计思路 73
21.2 编程原理 74
21.2.1 ActiveX控件基本原理 74
21.2.2 在程序中注册ActiveX控件 74
21.3 实例详解 75
精彩实例赏析 77
Part 3 多媒体篇
Example 22 基于DirectSound的声音播放器 80
22.1 设计思路 80
22.2 编程原理 80
22.3 实例详解 81
Example 23 AVI视频制作实例 86
23.1 设计思路 86
23.2 编程原理 86
23.2.1 AVI简介 86
23.2.2 VFW简介 87
23.3 实例详解 87
Example 24 视频播放器 87
24.1 设计思路 87
24.2 编程原理 88
24.3 实例详解 88
Example 25 仿Winamp多媒体播放器 89
25.1 设计思路 89
25.2 编程原理 89
25.2.1 多媒体Windows 89
25.2.2 音频播放技术 90
25.3 实例详解 92
25.3.1 添加资源及实现彩色按钮 92
25.3.2 仿Winmap界面的实现 93
精彩实例赏析 95
Part 4 数字图像篇
Example 26 BMP图片浏览器 98
26.1 设计思路 98
26.2 编程原理 98
26.3 实例详解 102
26.3.1 CBMPViewerDoc头文件 102
26.3.2 浏览BMP文件 102
Example 27 小波算法的VC++实现 107
27.1 设计思路 107
27.2 编程原理 108
27.2.1 小波变换基本原理 108
27.2.2 例程Wavelet1D实现原理 109
27.2.3 例程Wavelet2D实现原理 110
27.3 实例详解 112
27.3.1 一维小波变换Wavelet1D实现 112
27.3.2 二维小波变换Wavelet2D实现 113
Example 28 基因算法的VC++实现 113
28.1 设计思路 113
28.2 编程原理 114
28.2.1 基因算法的基本原理 114
28.2.2 本例程的实现原理 115
28.3 实例详解 116
28.3.1 实现代码 116
28.3.2 程序运行效果 119
Example 29 细胞识别统计系统 119
29.1 设计思路 119
29.2 编程原理 120
29.2.1 系统的技术要求 120
29.2.2 开发流程图 121
29.3 实例详解 121
29.3.1 图像平滑 121
29.3.2 图像二值化 123
29.3.3 RGB色彩空间到HSI色彩空间的转换 125
29.3.4 孔洞填充 127
29.3.5 利用梯度信息进行修正 131
29.3.6 腐蚀去噪声 138
29.3.7 细化 140
29.3.8 修正 143
29.3.9 数量统计 155
29.3.10 识别结果 156
29.3.11 时间消耗 157
Example 30 基于神经网络的文字识别系统 158
30.1 设计思路 158
30.2 编程原理 159
30.3 实例详解 159
30.3.1 图像数据的读取、保存与屏幕显示 160
30.3.2 图像的预处理 163
30.3.3 滤波、去噪等图像处理技术 183
30.3.4 用神经网络进行字符识别 187
30.3.5 程序总体编写框架 213
30.3.6 程序使用说明、测试及注意事项 214
Example 31 车牌识别系统 217
31.1 设计思路 217
31.2 编程原理 218
31.2.1 系统硬件平台 218
31.2.2 系统软件平台 219
31.2.3 车辆图像采集 222
31.2.4 牌照区域提取 223
31.2.5 牌照图像二值化 230
31.2.6 牌照字符分割 235
31.2.7 牌照字符识别(神经网络) 236
31.2.8 车辆视频检测 238
31.3 实例详解 242
精彩实例赏析 244
Part 5 网络通信篇
Example 32 点对点文件传输 248
32.1 设计思路 248
32.2 编程原理 248
32.3 实例详解 249
Example 33 Sniff网络嗅探器 262
33.1 设计思路 262
33.2 编程原理 262
33.3 实例详解 263
Example 34 基于UDP的网段扫描器 272
34.1 设计思路 272
34.2 编程原理 273
34.2.1 UDP与TCP简介 273
34.2.2 CSocket类中的UDP相关函数 274
34.2.3 事件函数和线程创建函数 275
34.3 实例详解 275
34.3.1 初始化例程 275
34.3.2 启动扫描 276
34.3.3 扫描线程 277
34.3.4 获得扫描结果 278
Example 35 网络流量监控实例 278
35.1 设计思路 278
35.2 编程原理 279
35.2.1 PDH简介 279
35.2.2 注册表查询 280
35.3 实例详解 281
35.3.1 主程序结构 281
35.3.2 关键代码分析 282
Example 36 网络语音电话 287
36.1 设计思路 287
36.2 编程原理 288
36.2.1 异形窗口的实现 288
36.2.2 Windows音频采样及播放 290
36.2.3 Windows网络通信 295
36.3 实例详解 304
36.3.1 音频设备设置 304
36.3.2 核心代码 305
Example 37 HTTP服务器实例 308
37.1 设计思路 308
37.2 编程原理 309
37.2.1 HTTP协议简介 309
37.2.2 HTTP协议的几个重要概念 310
37.2.3 HTTP协议的运作方式 310
37.3 实例详解 311
37.3.1 创建工程框架 311
37.3.2 创建服务类 313
37.3.3 创建服务器线程 319
37.3.4 设置IP功能 325
37.3.5 “设置路径”功能 326
37.3.6 “开始服务”功能 326
37.3.7 “停止服务”功能 327
精彩实例赏析 328
Part 6 数据库/MIS开发篇
Example 38 数据库浏览器 336
38.1 设计思路 336
38.2 编程原理 336
38.2.1 DAO的概念 336
38.2.2 DAO的特点 337
38.2.3 DAO的结构 338
38.3 实例详解 339
38.3.1 创建工程框架 339
38.3.2 添加对话框 340
38.3.3 切分视图 340
38.3.4 打开数据库 340
38.3.5 显示表记录 343
38.3.6 显示表信息 345
38.3.7 运行查询 346
Example 39 数据库查询器 347
39.1 设计思路 347
39.2 编程原理 348
39.2.1 ADO的概念 348
39.2.2 ADO的使用 348
39.3 实例详解 349
39.3.1 创建工程框架 349
39.3.2 建立连接 350
39.3.3 实现表查询 354
39.3.4 实现过程查询 358
39.3.5 新建查询 359
39.3.6 执行查询 359
39.3.7 显示查询结果 362
39.3.8 事件处理 366
39.3.9 断开数据源的连接 370
Example 40 报表打印实例 371
40.1 设计思路 371
40.2 编程原理 372
40.3 实例详解 372
40.3.1 生成打印内容 372
40.3.2 设置打印参数 373
Example 41 课程信息管理系统 378
41.1 设计思路 378
41.2 编程原理 378
41.2.1 ODBC简介 378
41.2.2 连接数据库 379
41.2.3 运行SQL语句 379
41.2.4 ODBC事务处理 380
41.2.5 建立和关闭记录集 380
41.2.6 滚动记录 382
41.2.7 修改、添加和删除记录 383
41.2.8 CRecordView类 384
41.3 实例详解 386
41.3.1 注册数据源 386
41.3.2 创建工程框架 387
41.3.3 生成记录浏览器 389
41.3.4 连接两个记录集 393
41.3.5 添加和删除记录 398
Example 42 库存信息管理系统 401
42.1 设计思路 402
42.1.1 系统模块分析 402
42.1.2 设计思路描述 402
42.2 编程原理 402
42.2.1 ADO编程 402
42.2.2 ADO对象详解 403
42.3 实例详解 408
42.3.1 创建数据库和表 408
42.3.2 创建工程框架 412
42.3.3 创建数据库表的类 416
42.3.4 创建用户登录模块 416
42.3.5 创建客户管理模块 418
42.3.6 创建仓库管理模块 422
42.3.7 创建产品管理模块 424
42.3.8 创建操作管理模块 430
42.3.9 创建统计查询管理模块 439
42.3.10 创建数量报警管理模块 442
Example 43 医院信息管理系统 444
43.1 设计思路 444
43.1.1 系统模块划分 444
43.1.2 设计思路描述 445
43.2 编程原理 445
43.2.1 ADO连接 445
43.2.2 ADO记录集 446
43.2.3 ADO字段 448
43.2.4 在VC++应用程序中使用ADO 451
43.3 实例详解 452
43.3.1 创建数据库和表 452
43.3.2 创建工程框架 456
43.3.3 创建数据库表的类 459
43.3.4 创建登录模块 460
43.3.5 创建医院设置模块 462
43.3.6 创建用户管理模块 464
43.3.7 创建信息管理模块 468
43.3.8 创建收费管理模块 475
43.3.9 创建统计查询管理模块 487
精彩实例赏析 492