第1章 Visual C+++ 6.0开发环境 1
1.1 Visual C+++ 6.0介绍 2
1.1.1 Visual C+++ 6.0概述 2
1.1.2 Visual C+++ 6.0特性 2
1.2 Visual C+++ 6.0开发环境介绍 2
1.3 Visual C+++ 6.0菜单介绍 3
1.3.1 File菜单 4
1.3.2 Edit菜单 4
1.3.3 View菜单 5
1.3.4 Insert菜单 5
1.3.5 Project菜单 6
1.3.6 Build菜单 6
1.3.7 Layout菜单 6
1.3.8 Tools菜单 7
1.3.9 Window菜单 8
1.3.10 Help菜单 8
1.4 Visual C+++ 6.0工具栏介绍 8
1.4.1 Standard工具栏 9
1.4.2 Build MiniBar工具栏 9
1.4.3 Debug工具栏 10
1.5 工作区介绍 11
1.5.1 Class View选项卡 11
1.5.2 ResourceView选项卡 11
1.5.3 FileView选项卡 12
1.6 编辑器窗口介绍 12
1.7 输出窗口介绍 13
1.8 开发环境使用技巧 13
1.8.1 定制工具栏 13
1.8.2 从其他文件中抓取资源 14
1.8.3 使用源代码浏览工具 15
1.8.4 删除工程中的类 15
1.8.5 在类向导中处理没有发现的窗口消息 15
1.8.6 完全取词功能不可用 16
1.8.7 判断代码中的括号是否匹配 16
1.8.8 对齐零乱的代码 16
1.9 调试窗口 16
1.9.1 利用Watch调试窗口查看对象信息 16
1.9.2 利用Call Stack窗口查看函数调用信息 17
1.9.3 利用Memory窗口查看内存信息 17
1.9.4 利用Variables窗口查看变量信息 18
1.9.5 利用Registers窗口查看CPU寄存器信息 18
1.9.6 利用Disassembly窗口查看汇编信息 19
第2章 Visual C+++编程基础 21
2.1 C+++语言基础 22
2.1.1 语句 22
2.1.2 函数 27
2.1.3 类和对象 30
2.2 对话框程序设计 35
2.2.1 构建对话框应用程序 35
2.2.2 创建和显示对话框 38
2.2.3 对话框属性设置 42
2.2.4 对话框界面布局 43
2.2.5 添加控件成员变量 46
2.2.6 向对话框中添加成员函数 48
2.3 菜单和工具栏设计 49
2.3.1 菜单设计 49
2.3.2 工具栏设计 63
2.4 小结 70
第3章 图像处理模块 71
3.1 图像处理模块概述 72
3.1.1 模块概述 72
3.1.2 功能结构 72
3.1.3 模块预览 72
3.2 关键技术 75
3.2.1 位图数据的存储形式 75
3.2.2 任意角度旋转图像 77
3.2.3 实现图像缩放 79
3.2.4 在Visual C+++中使用GDI+进行图像处理 80
3.2.5 实现图像的水印效果 81
3.2.6 浏览PSD文件 81
3.2.7 利用滚动窗口浏览图片 83
3.2.8 使用子对话框实现图像的局部选择 85
3.3 图像旋转模块设计 88
3.3.1 概述 88
3.3.2 界面布局 89
3.3.3 实现过程 89
3.4 图像平移模块设计 94
3.4.1 概述 94
3.4.2 界面布局 95
3.4.3 实现过程 95
3.5 图像缩放模块设计 99
3.5.1 概述 99
3.5.2 界面布局 99
3.5.3 实现过程 100
3.6 图像水印效果模块设计 103
3.6.1 概述 103
3.6.2 界面布局 104
3.6.3 实现过程 104
3.7 位图转换为JPEG模块设计 106
3.7.1 概述 106
3.7.2 界面布局 106
3.7.3 实现过程 106
3.8 PSD文件浏览模块设计 110
3.8.1 概述 110
3.8.2 界面布局 110
3.8.3 实现过程 111
3.9 照片版式处理模块设计 113
3.9.1 概述 113
3.9.2 界面布局 114
3.9.3 实现过程 114
第4章 办公助手模块 121
4.1 办公助手模块概述 122
4.1.1 模块概述 122
4.1.2 功能结构 122
4.1.3 模块预览 122
4.2 关键技术 123
4.2.1 如QQ般自动隐藏 123
4.2.2 按需要设计文本框 124
4.2.3 设计计算器的圆角按钮 126
4.2.4 回行数据在INI文件中的读取与写入 127
4.2.5 根据数据库数据生成复选框 128
4.2.6 饼形图显示投票结果 129
4.3 主窗体设计 130
4.3.1 概述 130
4.3.2 界面布局 131
4.3.3 实现过程 131
4.4 计算器设计 133
4.4.1 概述 133
4.4.2 界面布局 133
4.4.3 实现过程 134
4.5 便利贴设计 138
4.5.1 概述 138
4.5.2 界面布局 138
4.5.3 实现过程 139
4.6 加班模块设计 141
4.6.1 概述 141
4.6.2 界面布局 142
4.6.3 实现过程 142
4.7 投票项目模块设计 145
4.7.1 概述 145
4.7.2 界面布局 145
4.7.3 实现过程 146
第5章 桌面精灵模块 149
5.1 桌面精灵模块概述 150
5.1.1 模块概述 150
5.1.2 功能结构 150
5.1.3 模块预览 150
5.2 关键技术 151
5.2.1 阳历转换成阴历的算法 151
5.2.2 时钟的算法 154
5.2.3 实现鼠标穿透 156
5.2.4 窗体置顶及嵌入桌面 156
5.2.5 添加系统托盘 156
5.2.6 开机自动运行 158
5.2.7 自绘右键弹出菜单 158
5.2.8 带图标的按钮控件 162
5.3 主窗体设计 163
5.3.1 概述 163
5.3.2 界面设计 164
5.3.3 实现过程 164
5.4 新建备忘录模块设计 170
5.4.1 概述 170
5.4.2 界面设计 171
5.4.3 实现过程 171
5.5 新建纪念日模块设计 174
5.5.1 概述 174
5.5.2 界面设计 175
5.5.3 实现过程 175
5.6 纪念日列表模块设计 178
5.6.1 概述 178
5.6.2 界面设计 178
5.6.3 实现过程 178
5.7 窗口设置模块设计 181
5.7.1 概述 181
5.7.2 界面设计 182
5.7.3 实现过程 182
5.8 提示窗口模块设计 183
5.8.1 概述 183
5.8.2 界面设计 184
5.8.3 实现过程 184
第6章 企业通信模块 189
6.1 企业通信模块概述 190
6.1.1 模块概述 190
6.1.2 功能结构 190
6.1.3 模块预览 190
6.2 关键技术 192
6.2.1 设计支持QQ表情的ATL控件 192
6.2.2 向CRichEditCtrl控件中插入ATL控件 200
6.2.3 向CRichEditCtrl控件中插入ATL控件 202
6.2.4 使用XML文件实现组织结构的客户端显示 202
6.2.5 在树控件中利用节点数据标识节点的类型(部门信息、男职员、女职员) 203
6.2.6 定义数据包结构,实现文本、图像等文件的发送与显示 204
6.2.7 数据包粘包的简单处理 205
6.2.8 实现客户端掉线的自动登录 206
6.3 服务器主窗体设计 207
6.3.1 概述 207
6.3.2 界面布局 207
6.3.3 实现过程 208
6.4 部门设置模块设计 210
6.4.1 概述 210
6.4.2 界面布局 211
6.4.3 实现过程 211
6.5 账户设置模块设计 214
6.5.1 概述 214
6.5.2 界面布局 214
6.5.3 实现过程 215
6.6 客户端主窗体设计 218
6.6.1 概述 218
6.6.2 界面布局 218
6.6.3 实现过程 219
6.7 登录模块设计 223
6.7.1 概述 223
6.7.2 界面布局 224
6.7.3 实现过程 224
6.8 信息发送窗体模块设计 227
6.8.1 概述 227
6.8.2 界面布局 228
6.8.3 实现过程 228
第7章 媒体播放器模块 233
7.1 媒体播放器模块概述 234
7.1.1 模块概述 234
7.1.2 模块预览 234
7.2 关键技术 235
7.2.1 如何使用DirectShow开发包 235
7.2.2 使用DirectShow开发程序的方法 236
7.2.3 使用DirectShow如何确定媒体文件播放完成 237
7.2.4 使用DirectShow进行音量和播放进度的控制 238
7.2.5 使用DirectShow实现字幕叠加 239
7.2.6 使用DirectShow实现亮度、饱和度和对比度调节 241
7.2.7 设计显示目录和文件的树视图控件 241
7.3 媒体播放器主窗体设计 245
7.3.1 概述 245
7.3.2 界面布局 245
7.3.3 实现过程 246
7.4 视频显示窗体设计 255
7.4.1 概述 255
7.4.2 界面布局 255
7.4.3 实现过程 255
7.5 字幕叠加窗体设计 256
7.5.1 概述 256
7.5.2 界面布局 256
7.5.3 实现过程 257
7.6 视频设置窗体设计 259
7.6.1 概述 259
7.6.2 界面布局 259
7.6.3 实现过程 259
7.7 文件播放列表窗体设计 262
7.7.1 概述 262
7.7.2 界面布局 263
7.7.3 实现过程 263
第8章 屏幕录像模块 269
8.1 屏幕录像模块概述 270
8.1.1 模块概述 270
8.1.2 功能结构 270
8.2 关键技术 270
8.2.1 屏幕抓图 270
8.2.2 抓图时抓取鼠标 271
8.2.3 将位图数据流写入AVI文件 271
8.2.4 将AVI文件转换成位图数据 275
8.2.5 获得AVI文件属性 276
8.2.6 根据运行状态显示托盘图标 277
8.2.7 获得磁盘的剩余空间 278
8.2.8 动态生成录像文件名 278
8.3 主窗体设计 279
8.3.1 概述 279
8.3.2 界面设计 280
8.3.3 功能实现 281
8.4 录像截取模块设计 289
8.4.1 概述 289
8.4.2 界面设计 290
8.4.3 功能实现 290
8.5 录像合成模块设计 295
8.5.1 概述 295
8.5.2 界面设计 295
8.5.3 功能实现 295
第9章 计算机监控模块 299
9.1 计算机监控模块概述 300
9.1.1 开发背景 300
9.1.2 需求分析 300
9.1.3 模块预览 300
9.2 关键技术 301
9.2.1 获取屏幕设备上下文存储为位图数据流 301
9.2.2 将位图数据流压缩为JPEG数据流 302
9.2.3 将JPEG数据流分成多个数据包发送到服务器 302
9.2.4 将多个数据包组合为一个完整的JPEG数据流 303
9.2.5 根据JPEG数据流显示图像 304
9.2.6 双击实现窗口全屏显示 304
9.3 客户端主窗体设计 305
9.3.1 概述 305
9.3.2 实现过程 305
9.4 服务器端主窗体设计 310
9.4.1 概述 310
9.4.2 实现过程 310
9.5 远程控制窗体设计 313
9.5.1 概述 313
9.5.2 界面布局 314
9.5.3 实现过程 314
第10章 考试管理模块 317
10.1 考试管理模块概述 318
10.1.1 考试管理模块概述 318
10.2 关键技术 318
10.2.1 在主窗口显示之前显示登录窗口 318
10.2.2 随机抽题算法 319
10.2.3 文本框控件设置背景图片 320
10.2.4 显示欢迎窗口 320
10.2.5 计时算法 321
10.2.6 保存答案算法 322
10.2.7 工具栏按钮提示功能实现 322
10.2.8 图标按钮的实现 323
10.3 数据库设计 325
10.3.1 数据库分析 325
10.3.2 设计表结构 325
10.4 学生前台考试模块 326
10.4.1 学生考试功能实现 326
10.4.2 学生查分功能实现 336
10.5 教师后台管理模块 339
10.5.1 后台管理主窗口 339
10.5.2 学生信息管理功能实现 342
10.5.3 试题管理功能实现 346
10.5.4 学生分数查询功能实现 351
第11章 SQL数据库提取器模块 359
11.1 SQL数据库提取器概述 360
11.1.1 模块概述 360
11.1.2 功能结构 360
11.2 关键技术 360
11.2.1 获得数据表、视图和存储过程 360
11.2.2 获得表结构 361
11.2.3 向WORD文档中插入表格 361
11.2.4 向WORD表格中插入图片 362
11.2.5 向EXCEL表格中插入图片 363
11.2.6 使用bcp实用工具导出数据 363
11.3 主窗体设计 365
11.3.1 概述 365
11.3.2 界面设计 366
11.3.3 功能实现 366
11.4 附加数据库模块设计 373
11.4.1 概述 373
11.4.2 界面设计 373
11.4.3 功能实现 373
11.5 备份数据库模块设计 375
11.5.1 概述 375
11.5.2 界面设计 376
11.5.3 功能实现 376
11.6 数据导出模块设计 377
11.6.1 概述 377
11.6.2 界面设计 378
11.6.3 功能实现 378
11.7 配置ODBC数据源模块设计 384
11.7.1 概述 384
11.7.2 界面设计 384
11.7.3 功能实现 385
第12章 万能打印模块 387
12.1 万能打印模块概述 388
12.2 关键技术 388
12.2.1 滚动条设置 388
12.2.2 打印中的页码计算和分页预览功能算法 390
12.2.3 数据库查询功能 392
12.2.4 打印控制功能 393
12.2.5 如何解决屏幕和打印机分辨率不统一问题 395
12.2.6 打印新一页 395
12.3 主窗体设计 395
12.3.1 功能概述 395
12.3.2 设计思路 396
12.3.3 实现过程 396
12.4 Access数据库选择窗体 400
12.4.1 功能概述 400
12.4.2 设计思路 401
12.4.3 实现过程 401
12.5 SQLServer数据库选择窗体 403
12.5.1 功能概述 403
12.5.2 设计思路 403
12.5.3 实现过程 404
12.6 数据库查询模块 407
12.6.1 功能概述 407
12.6.2 设计思路 408
12.6.3 实现过程 408
12.7 打印设置模块 410
12.7.1 功能概述 410
12.7.2 设计思路 411
12.7.3 实现过程 411
12.8 打印预览及打印模块 416
12.8.1 功能概述 416
12.8.2 设计思路 416
12.8.3 实现过程 417
第13章 FTP文件上传下载模块 429
13.1 FTP文件上传下载模块概述 430
13.1.1 开发背景 430
13.1.2 需求分析 430
13.1.3 模块预览 430
13.2 关键技术 432
13.2.1 设计类似于资源管理器的列表视图控件 432
13.2.2 登录FTP服务器 443
13.2.3 实现FTP目录浏览 443
13.2.4 多任务下载FTP文件 445
13.2.5 在任务列表中暂停、取消某一任务 450
13.2.6 利用鼠标拖曳实现文件的上传下载 450
13.2.7 直接创建多级目录 452
13.2.8 根据文件扩展名获取文件的系统图标 452
13.2.9 关闭工具栏时取消菜单项的复选标记 453
13.3 主窗体设计 454
13.3.1 概述 454
13.3.2 界面布局 454
13.3.3 实现过程 455
13.4 登录信息栏设计 458
13.4.1 概述 458
13.4.2 界面布局 458
13.4.3 实现过程 458
13.5 工具栏窗体设计 459
13.5.1 概述 459
13.5.2 界面布局 459
13.5.3 实现过程 460
13.6 本地信息窗体设计 470
13.6.1 概述 470
13.6.2 界面布局 471
13.6.3 实现过程 471
13.7 远程FTP服务器信息窗体设计 474
13.7.1 概述 474
13.7.2 界面布局 474
13.7.3 实现过程 475
13.8 任务列表窗体设计 476
13.8.1 概述 476
13.8.2 界面布局 477
13.8.3 实现过程 477
第14章 电子邮件模块 481
14.1 电子邮件模块概述 482
14.1.1 模块概述 482
14.1.2 功能结构 482
14.1.3 模块预览 482
14.2 关键技术 484
14.2.1 Jmail组件的注册 484
14.2.2 绘制带背景的工具栏 484
14.2.3 自绘工具栏下拉菜单 485
14.2.4 动态生成工具栏下拉菜单 488
14.2.5 邮件的分页显示 489
14.2.6 声明MAPI函数原型 490
14.2.7 使用MAPI发送邮件 490
14.2.8 使用MAPI发送带附件的邮件 491
14.2.9 使用Jmail组件接收邮件 492
14.2.10 自绘热点按钮 493
14.3 邮件服务配置 494
14.3.1 SMTP和POP3简介 494
14.3.2 安装和配置邮件服务器 494
14.3.3 安装和配置POP3服务器 497
14.4 主窗体设计 498
14.4.1 概述 498
14.4.2 界面布局 498
14.4.3 功能实现 499
14.5 写邮件模块设计 502
14.5.1 概述 502
14.5.2 界面布局 503
14.5.3 功能实现 503
14.6 草稿箱设计 508
14.6.1 概述 508
14.6.2 界面布局 509
14.6.3 功能实现 509
14.7 收件箱设计 513
14.7.1 概述 513
14.7.2 界面布局 513
14.7.3 功能实现 514
14.8 读邮件设计 519
14.8.1 概述 519
14.8.2 界面布局 520
14.8.3 功能实现 520
14.9 通讯录设计 521
14.9.1 概述 521
14.9.2 界面布局 522
14.9.3 功能实现 523
第15章 网络五子棋模块 527
15.1 网络五子棋模块概述 528
15.1.1 概述 528
15.1.2 模块预览 528
15.2 关键技术 529
15.2.1 使用TCP协议进行网络通信 529
15.2.2 定义网络通信协议 530
15.2.3 实现动态调整棋盘大小 531
15.2.4 在棋盘中绘制棋子 533
15.2.5 五子棋赢棋判断 535
15.2.6 设计游戏悔棋功能 538
15.2.7 设计游戏回放功能 540
15.2.8 对方网络状态测试 543
15.3 服务器端主窗体设计 544
15.3.1 概述 544
15.3.2 界面布局 545
15.3.3 实现过程 545
15.4 服务器设置窗体设计 547
15.4.1 概述 547
15.4.2 界面布局 547
15.4.3 实现过程 547
15.5 棋盘窗体设计 548
15.5.1 概述 548
15.5.2 界面布局 549
15.5.3 实现过程 549
15.6 游戏控制窗体设计 562
15.6.1 概述 562
15.6.2 界面布局 563
15.6.3 实现过程 563
15.7 对方信息窗体设计 565
15.7.1 概述 565
15.7.2 界面布局 566
15.7.3 实现过程 566
15.8 客户端主窗体设计 567
15.8.1 概述 567
15.8.2 界面布局 568
15.8.3 实现过程 568
第16章 软件注册模块 571
16.1 软件注册模块概述 572
16.1.1 模块概述 572
16.1.2 操作流程 572
16.2 关键技术 572
16.2.1 获取CPU序列号 572
16.2.2 获得磁盘序列号 573
16.2.3 获得网卡地址 573
16.2.4 生成注册码 574
16.2.5 根据注册表中的数据限制试用次数 574
16.2.6 注册快捷键 575
16.2.7 一次性粘贴注册码 576
16.3 注册码生成器设计 577
16.3.1 概述 577
16.3.2 界面设计 577
16.3.3 功能实现 578
16.4 主窗体设计 580
16.4.1 概述 580
16.4.2 界面设计 580
16.4.3 功能实现 580
16.5 注册模块设计 581
16.5.1 概述 581
16.5.2 界面设计 581
16.5.3 功能实现 582
16.6 注册向导模块设计 583
16.6.1 概述 583
16.6.2 界面设计 584
16.6.3 功能实现 584
第17章 短信群发模块 587
17.1 短信群发模块概述 588
17.1.1 模块概述 588
17.1.2 功能结构 588
17.1.3 模块预览 588
17.2 关键技术 590
17.2.1 短信猫介绍 590
17.2.2 短信猫的使用流程 592
17.2.3 发送短信 593
17.2.4 接收短信 594
17.2.5 自绘菜单 594
17.2.6 自绘工具栏 598
17.2.7 设置静态文本控件背景透明☆ 599
17.2.8 按分组信息插入电话号码 600
17.2.9 自动插入联系人 601
17.3 主窗体设计 601
17.3.1 概述 601
17.3.2 界面设计 602
17.3.3 功能实现 603
17.4 短信猫设置模块 605
17.4.1 概述 605
17.4.2 界面设计 605
17.4.3 功能实现 606
17.5 联系人管理模块 607
17.5.1 概述 607
17.5.2 界面设计 607
17.5.3 功能实现 607
17.6 短信发送模块 610
17.6.1 概述 610
17.6.2 界面设计 611
17.6.3 功能实现 611
17.7 自动回复模块 613
17.7.1 概述 613
17.7.2 界面设计 613
17.7.3 功能实现 614
17.8 收信箱模块 616
17.8.1 概述 616
17.8.2 界面设计 617
17.8.3 功能实现 617
17.9 回复短信模块 618
17.9.1 概述 618
17.9.2 界面设计 618
17.9.3 功能实现 619
第18章 监控卡视频监控模块 621
18.1 监控卡视频监控模块概述 622
18.1.1 概述 622
18.1.2 模块预览 622
18.2 关键技术 624
18.2.1 视频监控的系统部署方式 624
18.2.2 监控卡安装过程 625
18.2.3 天敏VC4000监控卡开发流程分析 628
18.2.4 天敏VC4000监控卡SDK主要函数介绍 629
18.2.5 设计视频预览控件 633
18.2.6 设计视频预览框架窗口 636
18.2.7 云台设备的安装 640
18.2.8 云台协议分析 641
18.3 服务器端主窗体设计 642
18.3.1 概述 642
18.3.2 界面布局 643
18.3.3 实现过程 643
18.4 串口设置窗体设计 648
18.4.1 概述 648
18.4.2 界面布局 648
18.4.3 实现过程 649
18.5 客户端主窗体设计 649
18.5.1 概述 649
18.5.2 界面布局 650
18.5.3 实现过程 650
18.6 连接服务器窗体设计 653
18.6.1 概述 653
18.6.2 界面布局 653
18.6.3 实现过程 654
18.7 云台控制码窗体设计 654
18.7.1 概述 654
18.7.2 界面布局 655
18.7.3 实现过程 655
第19章 界面换肤模块 657
19.1 界面换肤模块概述 658
19.1.1 概述 658
19.1.2 模块预览 658
19.2 关键技术 660
19.2.1 创建动态链接库 660
19.2.2 向动态链接库中添加位图资源 662
19.2.3 向动态链接库中添加C+++类 664
19.2.4 修改对话框的窗口过程 666
19.2.5 为窗口关联一个自定义数据结构 667
19.2.6 为应用程序安装钩子 668
19.3 加载皮肤文件实现界面换肤 668
19.3.1 概述 668
19.3.2 设计皮肤文件 669
19.3.3 设计主应用程序 672
19.4 加载组件库实现界面换肤 685
19.4.1 概述 685
19.4.2 设计界面换肤组件库 685
19.4.3 设计界面换肤演示程序 691
第20章 系统优化模块 693
20.1 系统优化模块概述 694
20.1.1 模块概述 694
20.1.2 功能结构 694
20.2 关键技术 694
20.2.1 自绘标题栏 694
20.2.2 获得任务列表 698
20.2.3 获得正在运行的进程 699
20.2.4 为列表视图控件关联右键菜单 700
20.2.5 清空回收站 701
20.2.6 清空“运行”中历史记录 701
20.2.7 清空IE历史记录 702
20.2.8 调用控制面板工具 702
20.3 主窗体设计 703
20.3.1 概述 703
20.3.2 界面布局 703
20.3.3 功能实现 704
20.4 控制面板操作模块 706
20.4.1 概述 706
20.4.2 界面布局 707
20.4.3 功能实现 707
20.5 磁盘空间整理模块 709
20.5.1 概述 709
20.5.2 界面布局 710
20.5.3 功能实现 710
20.6 垃圾文件清理模块 713
20.6.1 概述 713
20.6.2 界面布局 713
20.6.3 功能实现 714
20.7 系统任务管理模块 716
20.7.1 概述 716
20.7.2 界面布局 716
20.7.3 功能实现 716