第1篇 入门篇 2
第1章 Visual C++6.0集成开发环境 2
1.1 Visual C++6.0概述 3
1.2 Visual C++6.0开发环境介绍 3
1.2.1 熟悉Visual C++6.0 IDE开发环境 3
1.2.2 Visual C++6.0 IDE菜单介绍 4
1.2.3 Visual C++6.0 IDE 工具栏介绍 10
1.2.4 Visual C++6.0 工作区窗口介绍 12
1.2.5 Visual C++6.0控件面板介绍 14
1.2.6 Visual C++6.0输出窗口介绍 14
1.3 自定义开发环境 15
1.3.1 自定义工具栏 15
1.3.2 自定义代码编辑窗口 16
1.4 创建一个简单的程序 17
1.4.1 创建工程 18
1.4.2 编辑程序 20
1.5 本章小结 21
第2章 C++语言基础 22
2.1 构建开发环境 23
2.1.1 创建简单的工程 23
2.1.2 工程文件分析 24
2.1.3 编译、连接和运行工程 24
2.2 代码编写规范 25
2.2.1 在程序中规范使用注释 25
2.2.2 按照命名规范书写代码 26
2.2.3 统一代码缩进格式 26
2.3 C++基本要素 26
2.3.1 深入理解标识符 27
2.3.2 C++中常用关键字介绍 27
2.3.3 定义和使用常量 28
2.3.4 深入理解变量 29
2.4 数据类型 30
2.4.1 C++简单数据类型介绍 30
2.4.2 布尔类型 31
2.4.3 字符串类型 31
2.4.4 数组类型 34
2.4.5 枚举类型 37
2.4.6 结构体类型 39
2.4.7 C++指针类型 40
2.4.8 使用引用类型为变量设置别名 41
2.4.9 定义类型别名 42
2.5 数据类型转换 42
2.6 运算符 43
2.6.1 使用赋值运算符为变量赋值 43
2.6.2 使用算术运算符设计简单计算器 45
2.6.3 使用关系运算符进行条件判断 46
2.6.4 使用逻辑运算符描述复杂逻辑关系 47
2.6.5 理解逗号运算符 48
2.6.6 应用条件运算符简化代码 49
2.6.7 sizeof运算符 49
2.6.8 new和delete运算符 50
2.7 表达式 50
2.8 结合性与优先级 51
2.9 综合应用 52
2.9.1 使用枚举类型输出当前星期 52
2.9.2 定义操作员信息结构体 53
2.10 本章小结 54
第3章 程序控制语句 55
3.1 程序控制结构 56
3.1.1 顺序结构 56
3.1.2 选择(分支)结构 56
3.1.3 循环结构 57
3.2 语句 57
3.3 顺序语句 58
3.4 分支语句 59
3.4.1 if判断语句 59
3.4.2 switch语句 64
3.5 循环语句 67
3.5.1 使用跳转语句goto实现循环 67
3.5.2 使用while语句根据关系表达式实现循环 68
3.5.3 使用do…while语句根据关系表达式实现循环 70
3.5.4 使用for语句根据循环次数实现循环 70
3.6 其他控制语句 73
3.6.1 强制结束break 73
3.6.2 继续语句continue 74
3.6.3 退出语句exit 75
3.7 异常处理语句 76
3.8 综合应用 80
3.8.1 购物街中的商品价格竞猜 80
3.8.2 猴子吃桃 81
3.9 本章小结 81
第4章 面向过程与对象编程 82
4.1 函数 83
4.1.1 函数的声明和定义 83
4.1.2 为函数设置参数 84
4.1.3 为函数参数设置默认值 85
4.1.4 使用指针/引用参数 85
4.1.5 使用数组参数 87
4.1.6 为函数设置动态参数 88
4.1.7 定义内联函数 89
4.1.8 定义和使用重载函数 90
4.1.9 应用函数模板定义通用函数 91
4.1.10 应用函数指针调用不同的函数 92
4.1.11 函数的递归调用 92
4.2 类和对象 93
4.2.1 类的声明 93
4.2.2 对象的声明和实例化 94
4.2.3 类成员的访问 94
4.2.4 构造函数的定义及调用 94
4.2.5 析构函数的定义及调用过程分析 97
4.2.6 类的继承 98
4.2.7 为类定义内联方法 105
4.2.8 定义静态成员数据和静态方法 106
4.2.9 定义友元类和友元函数 108
4.2.10 重载运算符 110
4.3 异常处理 113
4.3.1 异常捕捉 113
4.3.2 抛出异常 114
4.4 综合应用 115
4.4.1 遍历磁盘目录 115
4.4.2 学生成绩排序 117
4.5 本章小结 118
第5章 对话框应用程序设计 119
5.1 构建对话框应用程序 120
5.2 对话框的操作 122
5.2.1 创建对话框 123
5.2.2 显示对话框 124
5.2.3 设置对话框属性 126
5.3 对话框中控件的操作 128
5.3.1 添加控件 128
5.3.2 选择控件 129
5.3.3 复制控件 129
5.3.4 删除控件 129
5.3.5 对齐控件 129
5.3.6 添加控件成员变量 130
5.3.7 控件的子类化 130
5.4 添加数据成员和成员函数 131
5.4.1 添加数据成员 132
5.4.2 添加成员函数 132
5.4.3 添加消息处理函数 134
5.5 Windows消息对话框 135
5.6 Windows通用对话框 136
5.6.1 获取磁盘中的文件 136
5.6.2 查找编辑框中的文本 138
5.6.3 获取字体信息 140
5.6.4 获取打印机设备上下文 142
5.6.5 设置打印纸大小 145
5.7 综合应用 147
5.7.1 登录对话框 147
5.7.2 如QQ般隐藏的窗体 148
5.8 本章小结 149
第6章 文档/视图应用程序设计 150
6.1 构建文档/视图应用程序 151
6.2 文档/视图结构的创建 152
6.2.1 文档模板的创建 152
6.2.2 文档的创建 153
6.2.3 框架与视图的创建 155
6.3 文档模板 156
6.3.1 文档管理器 156
6.3.2 文档模板 158
6.4 文档对象 159
6.4.1 文档对象的主要方法 159
6.4.2 文档对象的序列化 159
6.4.3 文档的初始化 161
6.4.4 文档的命令处理 162
6.4.5 文档的销毁 163
6.5 视图对象 166
6.5.1 视图对象主要方法 166
6.5.2 视图对象的初始化 166
6.5.3 视图的销毁 167
6.6 框架对象 170
6.6.1 框架对象的主要方法 170
6.6.2 框架的初始化 171
6.6.3 框架的命令消息处理 171
6.7 视图分割 172
6.7.1 划分子窗口 172
6.7.2 任意划分子窗口 175
6.8 综合应用 175
6.9 本章小结 178
第7章 常用控件 179
7.1 静态文本控件(Static Text) 180
7.1.1 静态文本控件概述 180
7.1.2 静态文本控件的主要属性 180
7.1.3 静态文本控件的主要方法、事件 181
7.2 编辑框控件(Edit Box) 183
7.2.1 编辑框控件概述 183
7.2.2 编辑框控件的主要属性 183
7.2.3 编辑框控件的主要方法、事件 184
7.2.4 使用编辑框控件设计登录对话框 188
7.3 按钮控件(Button) 189
7.3.1 按钮控件概述 189
7.3.2 按钮控件的主要属性 190
7.3.3 按钮控件的主要方法、事件 190
7.4 列表框控件(ListBox) 193
7.4.1 列表框控件概述 193
7.4.2 列表框控件的主要属性 193
7.4.3 列表框控件的主要方法、事件 194
7.4.4 操作列表框控件中的数据 197
7.5 组合框控件(Combo Box) 199
7.5.1 组合框控件概述 200
7.5.2 组合框控件的主要属性 200
7.5.3 组合框控件的主要方法、事件 200
7.6 列表视图控件(List Control) 202
7.6.1 列表视图控件概述 203
7.6.2 列表视图控件的主要属性 203
7.6.3 列表视图控件的主要方法 203
7.7 树视图控件(Tree Control) 207
7.7.1 树视图控件概述 207
7.7.2 树视图控件的主要属性 207
7.7.3 树视图控件的主要方法、事件 208
7.8 综合应用 214
7.8.1 按钮七巧板 214
7.8.2 QQ登录式的用户选择列表 216
7.8.3 以报表显示图书信息 217
7.8.4 以树状结构显示部门结构信息 218
7.9 本章小结 220
第8章 菜单、工具栏和状态栏设计 221
8.1 菜单设计 222
8.1.1 菜单资源设计 222
8.1.2 菜单项的命令处理 225
8.1.3 菜单项的更新机制 226
8.1.4 菜单类介绍 227
8.1.5 使用菜单类创建菜单 235
8.1.6 设计弹出式菜单 237
8.2 工具栏设计 238
8.2.1 工具栏资源设计 238
8.2.2 工具栏的命令处理 239
8.2.3 工具栏类(CToolBar)介绍 240
8.2.4 使用工具栏类创建工具栏 245
8.3 状态栏设计 247
8.3.1 状态栏类(CStatusBar) 247
8.3.2 使用状态栏类创建状态栏 251
8.4 综合应用 252
8.4.1 根据INI文件创建菜单 252
8.4.2 在状态栏中添加进度条 253
8.4.3 滚动字幕的状态栏 254
8.5 本章小结 255
第2篇 提高篇 258
第9章 文本、图形图像技术 258
9.1 图形设备接口 259
9.1.1 设备上下文介绍 259
9.1.2 熟悉使用GDI对象 260
9.2 文本输出 272
9.2.1 使用TextOut方法在指定位置输出文本 272
9.2.2 使用ExtTextOut方法在指定区域输出文本 273
9.2.3 使用TabbedTextOut方法根据制表位输出文本 274
9.2.4 使用DrawText方法格式化输出文本 276
9.3 文本属性 277
9.3.1 设置文本字体 277
9.3.2 设置文本对齐方式 280
9.3.3 设置文本颜色 281
9.3.4 设置文本背景颜色 282
9.3.5 设置文本背景模式 282
9.3.6 获取文本长度 283
9.4 图形绘制 284
9.4.1 利用点线绘制多边形 284
9.4.2 如何快速地绘制图形 285
9.4.3 如何填充指定的区域 288
9.4.4 绘制不规则图形 290
9.5 图像显示 291
9.5.1 设备相关和设备无关位图 291
9.5.2 在视图中绘制位图 292
9.5.3 放大和缩小显示图片 293
9.6 综合应用 295
9.6.1 绘制圆角按钮 295
9.6.2 模拟时钟 296
9.6.3 数字验证 297
9.7 本章小结 298
第10章 打印技术 299
10.1 打印概述 300
10.1.1 文档视图的打印流程 300
10.1.2 CPrintinfo结构 305
10.1.3 动态计算页码 307
10.2 映射模式与坐标系统 309
10.2.1 固定比率与可变比率映射模式 310
10.2.2 MM_TEXT映射模式 311
10.2.3 设置逻辑与设备坐标 311
10.3 打印控制 312
10.3.1 获取打印纸的左边距和上边距 312
10.3.2 控制打印方向 313
10.3.3 设置打印份数 315
10.4 打印实例 317
10.4.1 设计报表打印程序 317
10.4.2 设计单据打印报表 320
10.4.3 设计工作证打印程序 322
10.4.4 设计图片打印程序 324
10.5 综合应用 326
10.5.1 实现报表打印 326
10.5.2 实现商品销售图表打印 328
10.5.3 带滚动条的打印预览 330
10.6 本章小结 333
第11章 多媒体技术 334
11.1 图像处理技术 335
11.1.1 位图文件结构分析 335
11.1.2 将位图文件绘制成对话框背景 337
11.1.3 将设备上下文转换为位图 338
11.2 音频处理技术 340
11.2.1 播放应用程序中的WAVE资源 340
11.2.2 播放WAVE文件 340
11.2.3 音量大小控制 342
11.3 视频处理技术 347
11.3.1 播放AVI文件 347
11.3.2 将AVI动画分解成BMP位图 349
11.3.3 将BMP位图组合成AVI动画 352
11.4 综合应用 356
11.4.1 将WAVE文件转换为MP3文件 356
11.4.2 手写数字识别 358
11.5 本章小结 365
第12章 程序调试 366
12.1 断点跟踪 367
12.1.1 设置普通断点 367
12.1.2 设置条件断点 368
12.1.3 设置数据断点 369
12.1.4 设置消息断点 370
12.1.5 进行断点跟踪 371
12.2 调试窗口 373
12.2.1 使用Watch窗口查看变量值 374
12.2.2 使用Call Stack窗口查看函数的调用 375
12.2.3 使用Memory窗口查看对象的内存信息 375
12.2.4 使用Variables窗口查看变量信息 376
12.2.5 使用Registers窗口查看寄存器信息 376
12.2.6 使用Disassembly窗口查看反汇编代码 378
12.3 内存泄露检测 379
12.4 本章小结 380
第13章 ADO数据库编程 381
13.1 ADO概述 382
13.2 ADO对象 382
13.2.1 连接对象Connection 382
13.2.2 命令对象Command 383
13.2.3 记录集对象Recordset 384
13.3 ADO数据库操作技术 386
13.3.1 导入ADO动态链接库 386
13.3.2 使用ADO智能指针 387
13.3.3 初始化COM环境 388
13.3.4 连接数据库 388
13.3.5 获取连接数据库字符串的简单方法 391
13.3.6 打开记录集 392
13.3.7 遍历记录集 393
13.3.8 获取记录集记录数 395
13.3.9 向记录集中添加数据 395
13.3.10 修改现有记录 398
13.3.11 删除记录集中指定记录 400
13.3.12 使用SQL语句操作数据库 401
13.3.13 向数据库中添加位图 403
13.4 综合应用 408
13.4.1 将员工表中记录批量插入到另一个表中 408
13.4.2 批量修改员工表中的工资 409
13.4.3 删除指定条件的数据 410
13.5 本章小结 411
第14章 文件操作 412
14.1 C库和运行库文件操作 413
14.1.1 C库和运行库函数文件操作函数介绍 413
14.1.2 创建并写入文件 418
14.1.3 获取文件位置指针与文件长度 419
14.2 CFile类文件操作 422
14.2.1 CFile类介绍 422
14.2.2 获取文件属性 426
14.2.3 十六进制显示文本文件 429
14.2.4 使用CFile实现文件的复制 431
14.3 MFC串行化 432
14.3.1 CArchive类介绍 432
14.3.2 Serialize分析 434
14.3.3 创建串行化类 435
14.3.4 实现对象的串行化 436
14.4 文件查找类 437
14.4.1 文件查找类介绍 437
14.4.2 查找指定文件 440
14.4.3 显示磁盘目录 442
14.5 综合应用 445
14.5.1 列举文件夹下所有文件 445
14.5.2 获取目标文件的创建和修改时间 446
14.5.3 批量删除指定类型的文件 447
14.6 本章小结 448
第15章 注册表与INI文件 449
15.1 注册表 450
15.1.1 注册表简介 450
15.1.2 注册表结构分析 450
15.2 注册表函数 451
15.2.1 CRegKey类 451
15.2.2 注册表数据的写入 455
15.2.3 注册表的相关查询 461
15.2.4 注册表数据的枚举 463
15.3 INI文件 466
15.3.1 INI文件简介 467
15.3.2 INI文件结构分析 467
15.4 INI文件操作函数 468
15.4.1 操作INI文件函数介绍 468
15.4.2 INI文件中键名数据的读写 471
15.4.3 读写结构数据 474
15.4.4 节名与键名的枚举 476
15.5 综合应用 478
15.5.1 把文件删除到回收站中 478
15.5.2 设置开机自动运行 478
15.6 本章小结 480
第16章 动态链接库 481
16.1 链接库概述 482
16.1.1 链接库的构成 482
16.1.2 动态链接库和静态链接库 482
16.2 链接库的创建与使用 483
16.2.1 通过向导创建静态链接库 483
16.2.2 使用静态链接库 485
16.2.3 创建Win32动态链接库 486
16.2.4 MFC的3种动态链接库 488
16.3 链接库的导出 490
16.3.1 动态链接库的命名改编 491
16.3.2 使用dumpbin工具查看链接库 491
16.3.3 使用DEF文件导出函数名称 492
16.3.4 隐式调用与动态加载 493
16.3.5 从动态链接库中导出类 495
16.4 动态链接库高级应用 499
16.4.1 模块状态 499
16.4.2 资源动态链接库 500
16.4.3 钩子介绍 506
16.4.4 使用钩子动态链接库监控键盘 509
16.5 综合应用 513
16.5.1 格式化磁盘 513
16.5.2 函数转发 514
16.6 本章小结 515
第17章 进程与线程 516
17.1 进程 517
17.1.1 进程的概念 517
17.1.2 进程实例句柄 517
17.1.3 进程的创建 518
17.1.4 进程的终止 521
17.2 进程的应用 521
17.2.1 启动外部程序 522
17.2.2 进程间消息通信 523
17.2.3 进程间内存共享 525
17.2.4 列举系统中的进程 528
17.3 线程 530
17.3.1 深入理解线程 530
17.3.2 线程的创建与终止 531
17.3.3 用户界面线程 533
17.4 线程同步 535
17.4.1 线程同步的重要性 535
17.4.2 互斥实现线程同步 537
17.4.3 临界区实现线程同步 540
17.4.4 事件实现线程同步 542
17.5 综合应用 544
17.5.1 利用多线程实现文件查找 544
17.5.2 禁止程序重复运行 545
17.6 本章小结 545
第18章 网络编程 546
18.1 局域网技术 547
18.1.1 获取网卡地址 547
18.1.2 映射网络驱动器 548
18.1.3 获取局域网内计算机名称和IP 549
18.1.4 获得网上共享资源 553
18.1.5 在局域网中发送短消息 555
18.2 Windows套接字技术 556
18.2.1 套接字概述 556
18.2.2 WinSock API相关函数 557
18.3 WinSock类 562
18.3.1 CAsyncSocket类介绍 562
18.3.2 CSocket类介绍 567
18.4 综合应用 568
18.4.1 实现Ping命令 568
18.4.2 发送编辑框内数据 572
18.4.3 使用WinSock类设计网络聊天室 575
18.5 本章小结 578
第3篇 实战篇 580
第19章 屏幕录像模块 580
19.1 屏幕录像模块概述 581
19.1.1 模块概述 581
19.1.2 功能结构 581
19.2 关键技术 581
19.2.1 屏幕抓图 581
19.2.2 抓图时抓取鼠标 583
19.2.3 将位图数据流写入AVI文件 583
19.2.4 将AVI文件转换成位图数据 587
19.2.5 获得AVI文件属性 589
19.2.6 根据运行状态显示托盘图标 590
19.2.7 获得磁盘的剩余空间 592
19.2.8 动态生成录像文件名 593
19.3 主窗体设计 594
19.3.1 概述 594
19.3.2 界面设计 594
19.3.3 功能实现 595
19.4 录像截取模块设计 606
19.4.1 概述 606
19.4.2 界面设计 607
19.4.3 功能实现 607
19.5 本章小结 613
第20章 人事考勤管理系统 614
20.1 开发背景 615
20.2 系统分析 615
20.2.1 需求分析 615
20.2.2 系统功能描述 615
20.3 系统设计 615
20.3.1 系统目标 615
20.3.2 系统功能结构 616
20.3.3 业务流程图 616
20.3.4 数据库设计 616
20.4 公共类设计 617
20.5 主窗体设计 623
20.6 用户登录模块设计 624
20.6.1 用户登录模块概述 624
20.6.2 用户登录模块技术分析 624
20.6.3 用户登录模块实现过程 625
20.7 用户管理模块设计 626
20.7.1 用户管理模块概述 626
20.7.2 用户管理模块技术分析 626
20.7.3 用户管理模块实现过程 626
20.8 人员信息管理模块设计 628
20.8.1 人员信息管理模块概述 628
20.8.2 人员信息管理技术分析 628
20.8.3 人员信息管理实现过程 629
20.9 考勤管理模块设计 634
20.9.1 考勤管理模块概述 634
20.9.2 考勤管理模块技术分析 635
20.9.3 考勤管理模块实现过程 636
20.10 本章小结 641