第1篇 Visual C++基础篇
第1章 认识Visual C++ 2
1.1 Visual C++概述 3
1.1.1 Visual C++简介 3
1.1.2 Visual C++发展历程 3
1.1.3 Visual C++语言新特性 3
1.2 Visual C++集成开发环境 4
1.2.1 认识Visual C++开发环境 4
1.2.2 Visual C++菜单介绍 5
1.2.3 Visual C++工具栏 13
1.2.4 Visual C++控件面板 15
1.2.5 新建窗口(New) 16
1.2.6 工作区窗口(Workspace) 18
1.2.7 代码编辑器(Code Editor) 19
1.2.8 代码浏览器(Source Browser) 21
1.2.9 选项窗口(Options) 21
1.3 定制开发环境 26
1.3.1 定制菜单 26
1.3.2 定制工具栏 27
1.3.3 定制代码编辑器 28
1.4 应用程序的开发过程 29
1.4.1 制作一个简单的MFC应用程序 29
1.4.2 工程文件列表 32
第2章 C++语言基础 33
2.1 C++文件构成 34
2.1.1 C++头文件 34
2.1.2 C++源文件 34
2.2 程序设计规范 34
2.2.1 注释 34
2.2.2 命名 35
2.2.3 空白 35
2.2.4 缩进 36
2.3 程序设计基础 36
2.3.1 关键字 36
2.3.2 标识符 37
2.3.3 常量 37
2.3.4 变量 38
2.3.5 变量的存储类型 39
2.3.6 宏定义 40
2.4 基本数据类型 40
2.4.1 数值类型 40
2.4.2 字符类型 41
2.4.3 布尔类型 41
2.4.4 数组类型 41
2.4.5 枚举类型 41
2.4.6 结构体类型 42
2.4.7 共用体类型 43
2.4.8 文件类型 45
2.4.9 pair类型 48
2.4.10 指针类型 48
2.4.11 引用类型 49
2.4.12 自定义类型 50
2.5 类型转换 50
2.6 运算符 50
2.6.1 赋值运算符 51
2.6.2 算术运算符 51
2.6.3 逻辑运算符 52
2.6.4 关系运算符 52
2.6.5 自增自减运算符 53
2.6.6 位运算符 53
2.6.7 逗号运算符 54
2.6.8 条件运算符 55
2.6.9 sizeof运算符 55
2.6.10 new和delete运算符 56
2.6.11 结合性与优先级 56
2.7 表达式 57
第3章 C++语句控制 58
3.1 语句的构成 59
3.1.1 语句的构成 59
3.1.2 复合语句 59
3.2 顺序结构程序设计 60
3.3 选择结构程序设计 60
3.3.1 if语句 60
3.3.2 switch语句 62
3.4 循环结构程序设计 65
3.4.1 goto语句 65
3.4.2 while语句 66
3.4.3 do...while语句 67
3.4.4 for语句 68
第1篇 Visual C++基础篇
第1章 认识Visual C++ 2
1.1 Visual C++概述 3
1.1.1 Visual C++简介 3
1.1.2 Visual C++发展历程 3
1.1.3 Visual C++语言新特性 3
1.2 Visual C++集成开发环境 4
1.2.1 认识Visual C++开发环境 4
1.2.2 Visual C++菜单介绍 5
1.2.3 Visual C++工具栏 13
1.2.4 Visual C++控件面板 15
1.2.5 新建窗口(New) 16
1.2.6 工作区窗口(Workspace) 18
1.2.7 代码编辑器(Code Editor) 19
1.2.8 代码浏览器(Source Browser) 21
1.2.9 选项窗口(Options) 21
1.3 定制开发环境 26
1.3.1 定制菜单 26
1.3.2 定制工具栏 27
1.3.3 定制代码编辑器 28
1.4 应用程序的开发过程 29
1.4.1 制作一个简单的MFC应用程序 29
1.4.2 工程文件列表 32
第2章 C++语言基础 33
2.1 C++文件构成 34
2.1.1 C++头文件 34
2.1.2 C++源文件 34
2.2 程序设计规范 34
2.2.1 注释 34
2.2.2 命名 35
2.2.3 空白 35
2.2.4 缩进 36
2.3 程序设计基础 36
2.3.1 关键字 36
2.3.2 标识符 37
2.3.3 常量 37
2.3.4 变量 38
2.3.5 变量的存储类型 39
2.3.6 宏定义 40
2.4 基本数据类型 40
2.4.1 数值类型 40
2.4.2 字符类型 41
2.4.3 布尔类型 41
2.4.4 数组类型 41
2.4.5 枚举类型 41
2.4.6 结构体类型 42
2.4.7 共用体类型 43
2.4.8 文件类型 45
2.4.9 pair类型 48
2.4.10 指针类型 48
2.4.11 引用类型 49
2.4.12 自定义类型 50
2.5 类型转换 50
2.6 运算符 50
2.6.1 赋值运算符 51
2.6.2 算术运算符 51
2.6.3 逻辑运算符 52
2.6.4 关系运算符 52
2.6.5 自增自减运算符 53
2.6.6 位运算符 53
2.6.7 逗号运算符 54
2.6.8 条件运算符 55
2.6.9 sizeof运算符 55
2.6.10 new和delete运算符 56
2.6.11 结合性与优先级 56
2.7 表达式 57
第3章 C++语句控制 58
3.1 语句的构成 59
3.1.1 语句的构成 59
3.1.2 复合语句 59
3.2 顺序结构程序设计 60
3.3 选择结构程序设计 60
3.3.1 if语句 60
3.3.2 switch语句 62
3.4 循环结构程序设计 65
3.4.1 goto语句 65
3.4.2 while语句 66
3.4.3 do...while语句 67
3.4.4 for语句 68
3.5 其他控制语句 68
3.5.1 break语句 68
3.5.2 continue语句 69
3.5.3 exit语句 69
3.5.4 return语句 70
3.6 异常处理语句 71
第4章 数组 74
4.1 数组的概念 75
4.2 一维数组 75
4.2.1 一维数组的声明 75
4.2.2 一维数组元素的引用 75
4.2.3 一维数组的基本操作 76
4.3 二维数组及多维数组 77
4.3.1 二维数组的声明 77
4.3.2 二维数组的引用 77
4.3.3 二维数组的基本操作 77
4.3.4 多维数组的声明和引用 79
4.4 指向数组的指针 79
4.4.1 指向一维数组的指针 79
4.4.2 指向二维数组的指针 79
4.5 指针数组 80
4.6 数组的操作 81
4.6.1 数组的输入 82
4.6.2 数组的输出 82
4.6.3 数组的排序 82
4.6.4 数组的插入 83
4.6.5 数组的删除 84
4.7 数组应用 85
4.7.1 顺序查找 85
4.7.2 有序数组折半查找 86
第5章 函数 88
5.1 函数的声明和定义 89
5.1.1 函数的声明 89
5.1.2 函数的定义 89
5.1.3 函数的调用 89
5.2 参数的默认值 90
5.3 形参表可变的函数 90
5.4 参数传递方式 91
5.4.1 值传递 91
5.4.2 引用传递 92
5.4.3 常量参数 93
5.5 利用数组作为函数参数 94
5.6 内联函数 95
5.7 函数的递归调用 95
5.8 函数重载 96
5.9 函数指针 97
5.9.1 函数指针 97
5.9.2 函数指针数组 97
5.10 函数模板 98
5.11 局部变量与全局变量 99
第2篇 用户界面设计篇
第6章 面向对象的程序设计 101
6.1 类 102
6.1.1 类的概念 102
6.1.2 类的声明 102
6.2 对象 102
6.2.1 对象的声明和实例化 102
6.2.2 类与对象的关系 102
6.2.3 类成员的访问 102
6.2.4 类成员的保护 102
6.2.5 实现类的方法 103
6.3 构造函数和析构函数 104
6.3.1 默认构造函数 104
6.3.2 重载构造函数 104
6.3.3 复制构造函数 105
6.3.4 析构函数 106
6.4 继承 107
6.4.1 单一继承 107
6.4.2 覆盖成员函数 109
6.4.3 虚函数 111
6.4.4 纯虚函数 112
6.4.5 多重继承 113
6.5 高级方法 117
6.5.1 内联方法 117
6.5.2 静态成员数据和静态方法 117
6.5.3 友元类和友元函数 118
6.5.4 const方法 120
6.5.5 运算符重载 121
6.6 模板 123
6.6.1 模板的声明和实例化 123
6.6.2 模板的实现 123
6.6.3 模板应用 123
第7章 Win32 API 125
7.1 句柄的介绍 126
7.2 API函数简介 126
7.3 常用API函数 127
7.4 API调用 140
7.5 利用API开发Win32应用程序 141
第8章 用户界面设计 146
8.1 控件的画法 147
8.1.1 放置和选定控件 147
8.1.2 控件的缩放与移动 147
8.1.3 控件的复制与删除 147
8.1.4 控件的对齐 147
8.2 常用MFC控件 149
8.2.1 静态控件CStatic 149
8.2.2 编辑框控件CEdit 152
8.2.3 按钮控件CButton 156
8.2.4 列表框控件CListBox 158
8.2.5 组合框控件CComboBox 161
8.2.6 滚动条控件CScrollBar 163
8.2.7 进度条控件CProgressCtrl 167
8.2.8 时间控件CDateTimeCtrl 168
8.3 对话框设计 170
8.3.1 对话框简介 170
8.3.2 模态对话框与非模态对话框 171
8.3.3 对话框资源设计 171
8.3.4 对话框常用方法 172
8.3.5 向对话框类中添加成员函数 178
8.3.6 向对话框中添加控件消息处理函数 179
8.3.7 利用对话框设计登录窗口 179
8.3.8 共享对话框资源 181
第9章 文档与视图 183
9.1 文档/视图结构简介 184
9.1.1 文档/视图结构概述 184
9.1.2 创建文档/视图结构应用程序 184
9.2 文档/视图结构的创建 185
9.2.1 文档模板的创建 185
9.2.2 文档的创建 186
9.2.3 框架与视图的创建 188
9.3 文档模板 190
9.3.1 文档管理器 190
9.3.2 文档模板 192
9.4 文档对象 194
9.4.1 文档对象的主要方法 194
9.4.2 文档的初始化 195
9.4.3 保存文档 195
9.4.4 文档的命令处理 196
9.4.5 文档的销毁 197
9.5 视图对象 199
9.5.1 视图对象的主要方法 199
9.5.2 视图的初始化 200
9.5.3 视图的绘制 200
9.5.4 视图的销毁 201
9.6 框架窗口 203
9.6.1 框架对象的主要方法 203
9.6.2 框架的初始化 204
9.6.3 命令消息处理 204
9.7 文档/视图的典型应用 205
9.7.1 利用文档/视图结构进行打印 205
9.7.2 修改文档/视图结构默认的打印预览 209
第10章 菜单、工具栏和状态栏设计 212
10.1 菜单 213
10.1.1 菜单资源的设计 213
10.1.2 菜单的命令处理 214
10.1.3 菜单的主要方法 214
10.1.4 动态创建菜单 217
10.1.5 具有图标的菜单 218
10.1.6 自绘弹出菜单 222
10.2 工具栏 224
10.2.1 工具栏设计 224
10.2.2 工具栏按钮的命令处理 225
10.2.3 工具栏的主要方法 226
10.2.4 动态创建工具栏 227
10.2.5 具有热点效果的工具栏 228
10.2.6 具有提示功能的工具栏 229
10.2.7 具有下拉按钮的工具栏 230
10.3 状态栏 233
10.3.1 状态栏的主要方法 233
10.3.2 动态创建状态栏 234
10.3.3 在状态栏中显示滚动字幕 235
第11章 通用对话框 237
11.1 文件对话框 238
11.1.1 文件对话框的主要方法 238
11.1.2 文件对话框的典型应用 240
11.2 查找、替换对话框 240
11.2.1 查找、替换对话框的主要方法 240
11.2.2 查找、替换对话框的典型应用 242
11.3 字体对话框 243
11.3.1 字体对话框的主要方法 243
11.3.2 字体对话框的典型应用 244
11.4 颜色对话框 245
11.4.1 颜色对话框的主要方法 245
11.4.2 颜色对话框的典型应用 245
11.5 打印对话框 246
11.5.1 打印对话框的主要方法 246
11.5.2 打印对话框的典型应用 248
11.6 页面设置对话框 249
11.6.1 页面设置对话框的主要方法 250
11.6.2 页面设置对话框的典型应用 250
11.7 定制通用对话框 252
11.7.1 文件浏览对话框 252
11.7.2 Windows新型打开对话框 253
11.7.3 显示时钟的文件对话框 253
11.7.4 具有图像预览功能的文件对话框 254
第12章 高级控件 256
12.1 标签控件CTabCtrl 257
12.1.1 标签控件的主要属性 257
12.1.2 标签控件的主要方法 257
12.1.3 标签控件的典型应用 259
12.2 图像列表控件CImageList 261
12.2.1 图像列表控件的主要方法 261
12.2.2 图像列表控件的典型应用 263
12.3 列表视图控件CListCtrl 264
12.3.1 列表视图控件的主要属性 264
12.3.2 列表视图控件的主要方法 264
12.3.3 列表视图控件的典型应用 268
12.4 树视图控件CTreeCtrl 270
12.4.1 树视图控件的主要属性 270
12.4.2 树视图控件的主要方法 271
12.4.3 树视图控件的典型应用 274
第13章 ActiveX控件 277
13.1 ActiveX控件介绍 278
13.2 添加ActiveX控件 278
13.3 自制ActiveX控件 278
13.3.1 创建ActiveX控件 278
13.3.2 绘制ActiveX控件窗口 280
13.3.3 为ActiveX控件添加属性 281
13.3.4 为ActiveX控件添加方法 282
13.3.5 为ActiveX控件添加事件 282
13.3.6 为ActiveX控件添加属性页 283
13.3.7 注册ActiveX控件 284
13.3.8 使用自制的ActiveX控件 284
13.4 常用ActiveX控件 285
13.4.1 利用CAdodc控件操作数据库 285
13.4.2 利用DataGrid控件显示数据集数据 287
13.4.3 利用CBarCodeCtrl控件打印条形码 289
13.4.4 利用CWebBrowser2控件浏览网页 290
第14章 自制MFC控件 293
14.1 特殊的按钮控件 294
14.1.1 热点按钮控件 294
14.1.2 圆形按钮控件 296
14.2 自定义编辑控件 298
14.2.1 只允许输入数字的编辑框 298
14.2.2 具有位图背景的编辑框 299
14.3 位图背景列表框 300
14.4 颜色选择组合框 302
14.5 自绘滚动条控件 303
14.6 可以显示百分比的进度条控件 308
14.7 自绘滑块控件 309
14.8 似Windows资源管理器的列表控件 311
14.9 三态效果树控件 316
第3篇 文件、图形与多媒体篇
第15章 图形、图像处理技术 320
15.1 图形设备接口 321
15.2 GDI对象 321
15.2.1 画笔CPen 321
15.2.2 画刷CBrush 324
15.2.3 位图CBitmap 326
15.2.4 区域CRgn 328
15.2.5 字体CFont 332
15.2.6 设备上下文CDC 334
15.2.7 调色板CPalette 340
15.3 常用图像存储格式 342
15.3.1 位图 342
15.3.2 图标 343
15.3.3 GIF图像 344
15.4 文本输出 346
15.4.1 在指定位置输出文本 346
15.4.2 在指定区域输出文本 347
15.4.3 利用制表位输出文本 348
15.4.4 设置字体、颜色及对齐方式 349
15.4.5 设置文本背景透明 351
15.5 绘制图形图像 352
15.5.1 利用线条绘制表格 352
15.5.2 绘制多边形 353
15.5.3 填充区域 354
15.5.4 填充选区 355
15.5.5 线条的渐变 355
15.5.6 区域的渐变 356
15.5.7 绘制位图 357
15.5.8 显示JPEG 359
15.6 GDI+程序设计 360
15.6.1 使用GDI+为图像添加水印 360
15.6.2 使用GDI+进行图像转换 362
第16章 多媒体技术 365
16.1 视频捕捉 366
16.1.1 VFW简介 366
16.1.2 窗口类AVICap 366
16.1.3 AVI格式 367
16.1.4 VFW视频捕捉流程 370
16.1.5 视频捕捉窗口 371
16.1.6 视频捕捉设置 372
16.1.7 AVICap回调函数 372
16.1.8 利用摄像头进行图像采集 373
16.2 DirectShow程序设计 374
16.2.1 DirectShow简介 374
16.2.2 Filter的注册 375
16.2.3 DirectShow事件通知机制 375
16.2.4 利用Direct Show进行音频捕捉 375
16.3 控件在多媒体方面的应用 379
16.3.1 利用CAnimateCtrl播放动画 379
16.3.2 播放Flash动画 381
16.3.3 利用CAnimation控件播放AVI文件 384
16.3.4 利用CMediaPlayer2控件播放多媒体文件 385
16.3.5 利用RealOne控件制作媒体播放器 388
第17章 文件操作技术 392
17.1 数据的串行化 393
17.1.1 文件类CFile 394
17.1.2 共享文件类CShareFile 397
17.1.3 数据流类CMonikerFile 398
17.1.4 文件流类CStdioFile 399
17.1.5 文件查找类CFileFind 400
17.2 INI文件 402
17.2.1 INI文件的设计结构和数据类型 402
17.2.2 读取和写入INI文件 403
第18章 注册表 408
18.1 注册表的基础知识 409
18.2 注册表函数 409
18.3 CRegKey类 418
18.4 注册表的典型应用 419
18.4.1 将应用软件的使用次数写入注册表 419
18.4.2 通过注册表优化系统 420
第4篇 数据库技术篇
第19章 ADO数据库编程 424
19.1 ADO概述 425
19.2 ADO对象 425
19.2.1 连接对象Connection 425
19.2.2 命令对象Command 426
19.2.3 记录集对象Recordset 427
19.2.4 参数对象Parameter 428
19.3 利用ADO对象操作数据库 429
19.3.1 连接数据库 429
19.3.2 获取记录集数据 432
19.3.3 遍历记录集 433
19.3.4 向记录集中添加数据 435
19.3.5 修改记录集数据 438
19.3.6 删除记录集数据 439
19.4 数据添加 440
19.4.1 将图片添加到数据库 440
19.4.2 将声音文件添加到数据库 443
19.4.3 将电子表格内容添加到数据库 445
19.5 删除记录 448
19.5.1 删除符合条件的记录 448
19.5.2 删除所有记录 449
19.6 更新记录 449
19.6.1 更新符合条件的记录 449
19.6.2 为空字段设置默认数据 450
第20章 数据查询技术 452
20.1 简单查询 453
20.1.1 去除重复行 453
20.1.2 条件查询 456
20.1.3 计算列查询 457
20.1.4 用TOP子句查询前几个记录 457
20.1.5 数据分组统计 458
20.2 模糊查询 459
20.2.1 单个字符匹配查询 460
20.2.2 指定范围内单个字符匹配查询 460
20.2.3 多个字符匹配查询 461
20.2.4 利用模糊查询实现联想录入 462
20.3 时间段查询 465
20.3.1 利用Between…and进行时间段查询 465
20.3.2 利用关系表达式进行时间段查询 466
20.3.3 利用日期函数进行查询 467
20.4 聚集函数查询 468
20.4.1 利用聚集函数SUM查询 468
20.4.2 利用聚集函数AVG查询 469
20.4.3 利用聚集函数COUNT查询 470
20.5 视图 470
20.5.1 视图的简单应用 471
20.5.2 利用视图简化查询 472
20.5.3 利用视图修改数据 473
第21章 图表技术 474
21.1 图表的基本用法 475
21.1.1 认识MSChart控件 475
21.1.2 图表的组成 475
21.1.3 通过属性窗口设置图表外观 476
21.1.4 MSChart控件的常用方法 476
21.2 图表与数据的关联 478
21.2.1 与数据源关联 478
21.2.2 与记录关联 479
21.3 图表的复制粘贴 479
21.3.1 复制图表 479
21.3.2 粘贴图表 481
21.4 不同类型图表的典型应用 481
21.4.1 柱形图表分析商品销售情况 481
21.4.2 对比图表分析 482
21.4.3 折线图表分析产品价格趋势 482
21.4.4 饼型图表分析商品日销售额 483
21.4.5 三维图表示例 484
第22章 打印技术 486
22.1 基本概念 487
22.1.1 打印机介绍 487
22.1.2 分辨率 487
22.1.3 设备环境 488
22.1.4 映射模式 491
22.2 基于文档、视图结构的打印 492
22.2.1 文档、视图结构打印流程 492
22.2.2 打印图像 496
22.2.3 自定义打印预览 499
22.3 基于对话框结构的打印 500
22.3.1 获取打印机DC 501
22.3.2 打印对话框及其控件中的数据 502
22.3.3 打印窗体 503
22.4 打印控制 504
22.4.1 横向打印 504
22.4.2 设置打印表格的边线及字体 505
22.5 格式打印 508
22.5.1 图表打印 508
22.5.2 发票打印 509
22.5.3 假条套打 513
22.5.4 条形码打印 515
第5篇 网络通信篇
第23章 网络编程 518
23.1 网络编程基础 519
23.1.1 OSI参考模型 519
23.1.2 TCP/IP协议簇 519
23.1.3 套接字简介 520
23.1.4 客户、服务器模式 521
23.2 套接字函数 521
23.2.1 accpet函数 521
23.2.2 bind函数 521
23.2.3 closesocket函数 522
23.2.4 connect函数 522
23.2.5 htons函数 522
23.2.6 htonl函数 522
23.2.7 inet_addr函数 523
23.2.8 listen函数 523
23.2.9 recv函数 523
23.2.10 select函数 523
23.2.11 send函数 524
23.2.12 socket函数 524
23.2.13 WSAStartup函数 524
23.2.14 WSACleanup函数 525
23.2.15 WSAAsyncSelect函数 525
23.3 套接字函数使用技巧 525
23.3.1 套接字的断开重连 525
23.3.2 设置超时连接 527
23.3.3 释放套接字资源 527
23.4 WinSock类 528
23.4.1 CAsyncSocket类 528
23.4.2 CSocket类 531
23.5 开发网络应用程序 532
23.5.1 利用Windows Socket API开发网络应用程序 532
23.5.2 利用WinSock类开发网络应用程序 535
第24章 Internet编程 540
24.1 Internet编程技术 541
24.1.1 通信应用程序设计接口MAPI 541
24.1.2 WinInet编程 546
24.1.3 Interent信息服务器IIS编程 558
24.2 Internet程序开发 568
24.2.1 利用MAPI发送电子邮件 568
24.2.2 下载FTP服务器上的文件 572
24.2.3 开发ISAPI服务器扩展程序 573
24.3 常用网络技术 575
24.3.1 HTTP多线程文件下载 575
24.3.2 修改计算机的网络名称 577
24.3.3 利用TAPI实现网络拨号 578
第25章 串口数据通信 581
25.1 串口通信基础 582
25.1.1 串口通信原理 582
25.1.2 串口通信的特点 582
25.1.3 串口通信的传输方式 582
25.1.4 串口通信同步技术 582
25.1.5 串行接口标准 583
25.2 用API函数实现串口编程 584
25.2.1 API函数串口编程简介 584
25.2.2 常用串口编程API函数 584
25.2.3 用API函数实现串口通信 593
25.3 MSComm控件串口通信开发 596
25.3.1 MSComm控件简介 596
25.3.2 MSComm控件常用方法 596
25.3.3 MSComm控件常用事件 598
25.3.4 利用MSComm控件开发串口程序 598
第6篇 Windows编程篇
第26章 硬件相关 601
26.1 加密狗、加密锁 602
26.1.1 加密狗和加密锁介绍 602
26.1.2 向加密狗中写入数据 602
26.1.3 使用加密狗进行用户身份验证 603
26.1.4 向加密锁中写入数据 604
26.1.5 使用加密锁进行用户身份验证 605
26.2 IC卡、ID卡 606
26.2.1 IC卡、ID卡介绍 606
26.2.2 读写IC卡中数据 607
26.2.3 使用ID卡进行考勤 610
26.3 摄像头、云台 612
26.3.1 使用摄像头进行监控 612
26.3.2 使用摄像头制作监控录像 614
26.3.3 使用云台控制监控 615
26.4 条码扫描器、数据采集器 619
26.4.1 利用条码扫描器设计图书借阅 619
26.4.2 使用数据采集器进行库存盘点 621
26.5 短信猫 622
26.5.1 短信猫介绍 623
26.5.2 利用短信猫群发短信 623
26.5.3 使用短信猫进行自动回复 624
26.6 语音卡 628
26.6.1 语音卡介绍 628
26.6.2 语音卡电话呼叫系统 628
26.6.3 语音卡实现来电显示 632
26.6.4 利用语音卡实现电话录音 635
26.6.5 利用语音卡实现自助服务 637
26.7 指纹头、游戏杆 640
26.7.1 指纹头介绍 640
26.7.2 利用指纹头进行身份识别 640
26.7.3 游戏杆介绍 643
26.7.4 使用游戏杆开发贪吃蛇游戏 644
第27章 DLL动态链接库 650
27.1 动态链接库简介 651
27.1.1 DLL的构成 651
27.1.2 DLL映射到进程空间 651
27.2 创建动态链接库 652
27.2.1 创建MFC动态链接库 652
27.2.2 创建Win32静态链接库 654
27.2.3 创建Win32动态链接库 656
27.3 动态链接库中的资源 658
27.3.1 资源的名称和类型 658
27.3.2 资源模块 658
27.3.3 在模块中查找和加载资源 660
27.3.4 修改可执行文件中的资源 661
27.4 钩子函数 663
27.4.1 钩子技术 663
27.4.2 钩子类型和范围 663
27.4.3 安装和解除钩子 663
27.4.4 钩子应用实例 666
第28章 进程与线程 670
28.1 基础知识 671
28.1.1 什么是进程 671
28.1.2 什么是线程 671
28.1.3 线程的生命周期 671
28.2 进程内存管理 672
28.2.1 进程的创建 672
28.2.2 虚拟内存空间 674
28.2.3 进程间内存共享 674
28.3 线程技术 677
28.3.1 用户界面线程 677
28.3.2 工作者线程 677
28.4 线程操作 677
28.4.1 创建线程 677
28.4.2 终止线程 678
28.4.3 线程间通信 679
28.4.4 线程同步 680
第29章 消息处理技术 686
29.1 消息映射 687
29.1.1 基本概念 687
29.1.2 消息映射表 687
29.1.3 消息映射宏 687
29.2 消息处理 695
29.2.1 处理标准窗口消息 695
29.2.2 处理命令消息 696
29.2.3 处理反射消息 697
29.2.4 发送消息 698
29.2.5 自定义消息 700
29.2.6 跨进程处理消息 702
第7篇 辅助开发篇
第30章 算法 705
30.1 算法概述 706
30.1.1 什么是算法 706
30.1.2 算法的特点 706
30.1.3 算法的描述方法 706
30.2 排序算法 707
30.2.1 选择法排序 707
30.2.2 冒泡法排序 708
30.2.3 交换法排序 709
30.2.4 插入法排序 710
30.2.5 快速排序 711
30.3 转换类算法 712
30.3.1 8421码转换 712
30.3.2 进制转换 713
30.3.3 数字金额转换为大写汉字 716
30.3.4 提取汉字的拼音简码 718
30.3.5 汉字与区位码之间的相互转换 719
30.4 应用类算法 720
30.4.1 身份证升位算法 720
30.4.2 怎样存钱利息最多算法 721
30.4.3 根据贷款利率和还款年限计算每个月的还款额度 723
第31章 辅助工具 726
31.1 ActiveX Control Test Container 727
31.2 API Text Viewer 728
31.3 DataObject Viewer 729
31.4 DDE Spy 729
31.5 Depends 730
31.6 DocFile Viewer 730
31.7 Error Lookup 731
31.8 OLE Client Test 731
31.9 OLE Server Test 732
31.10 OLE View 732
31.11 Process Viewer 733
31.12 ROT Viewer 733
31.13 Spy++ 734
31.14 Tracer 735
31.15 WinDiff 735
31.16 Windows NT Symbols Setup 736
31.17 ZoomIn 737
第32章 C库函数大全 738
32.1 数学函数 739
32.2 字符函数和字符串函数 745
32.2.1 字符函数 745
32.2.2 字符串函数 747
32.3 时间日期函数 752
32.4 类型转换函数 755
32.5 文件目录操作函数 758
32.6 内存操作函数 759
32.7 输入输出函数 760
实例索引 768