本书精选了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.2CWorkQueue类介绍5
- 1.3.3多线程编程实现8
- Example 02动态链接库(DLL)实例8
- 2.1设计思路8
- 2.2编程原理9
- 2.2.1DLL的文件结构与参数传递9
- 2.2.2通过DEF文件从DLL中输出9
- 2.3实例详解10
- Example 03消息循环重载实例11
- 3.1设计思路11
- 3.2编程原理11
- 3.2.1Windows消息机制原理11
- 3.2.2Windows消息函数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.1Windows 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.1CFileFinder类31
- 9.2.2CFindOpts类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.1CSpinToolBar42
- 13.2.2CSlideToolBar44
- 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 17Windows XP风格菜单50
- 17.1设计思路50
- 17.2编程原理51
- 17.2.1自绘制菜单基本原理51
- 17.2.2CMenuXP类实现原理52
- 17.3实例详解54
- Example 18Office XP风格菜单54
- 18.1设计思路54
- 18.2编程原理55
- 18.2.1CMenuXP类实现原理55
- 18.2.2CMenuXP类核心代码55
- 18.3实例详解62
- Example 19Windows XP风格标题栏62
- 19.1设计思路62
- 19.2编程原理63
- 19.3实例详解64
- Example 20Windows XP风格对话框64
- 20.1设计思路64
- 20.2编程原理65
- 20.2.1标题栏和对话框边框的
- Windows XP风格实现原理65
- 20.2.2按钮的Windows XP风格实现原理70
- 20.3实例详解73
- Example 21Windows XP风格按钮和滚动条73
- 21.1设计思路73
- 21.2编程原理74
- 21.2.1ActiveX控件基本原理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 23AVI视频制作实例86
- 23.1设计思路86
- 23.2编程原理86
- 23.2.1AVI简介86
- 23.2.2VFW简介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多媒体Windows89
- 25.2.2音频播放技术90
- 25.3实例详解92
- 25.3.1添加资源及实现彩色按钮92
- 25.3.2仿Winmap界面的实现93
- 精彩实例赏析95
- Part 4数字图像篇
- Example 26BMP图片浏览器98
- 26.1设计思路98
- 26.2编程原理98
- 26.3实例详解102
- 26.3.1CBMPViewerDoc头文件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.3RGB色彩空间到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 33Sniff网络嗅探器262
- 33.1设计思路262
- 33.2编程原理262
- 33.3实例详解263
- Example 34基于UDP的网段扫描器272
- 34.1设计思路272
- 34.2编程原理273
- 34.2.1UDP与TCP简介273
- 34.2.2CSocket类中的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.1PDH简介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.2Windows音频采样及播放290
- 36.2.3Windows网络通信295
- 36.3实例详解304
- 36.3.1音频设备设置304
- 36.3.2核心代码305
- Example 37HTTP服务器实例308
- 37.1设计思路308
- 37.2编程原理309
- 37.2.1HTTP协议简介309
- 37.2.2HTTP协议的几个重要概念310
- 37.2.3HTTP协议的运作方式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.1DAO的概念336
- 38.2.2DAO的特点337
- 38.2.3DAO的结构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.1ADO的概念348
- 39.2.2ADO的使用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.1ODBC简介378
- 41.2.2连接数据库379
- 41.2.3运行SQL语句379
- 41.2.4ODBC事务处理380
- 41.2.5建立和关闭记录集380
- 41.2.6滚动记录382
- 41.2.7修改、添加和删除记录383
- 41.2.8CRecordView类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.1ADO编程402
- 42.2.2ADO对象详解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.1ADO连接445
- 43.2.2ADO记录集446
- 43.2.3ADO字段448
- 43.2.4在VC++应用程序中使用ADO451
- 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