21天学通Visual C++(第3版)
2014-1
电子工业出版社
张志美
《21天学通Visual C++(第3版)》从初学者的角度较全面地介绍了Visual C++编程的相关知识,然而,本书并没有泛讲Visual C++语言的所有知识,而是突出重点,选择最重要的内容进行讲解。全书共分为5篇,第1篇主要讲解Visual C++的基础知识,内容包括Visual C++ 6.0概述和Windows应用程序框架。第2篇重点分析Visual C++的可视化编程,主要包括常用控件、对话框、消息处理与ClassWizard使用、菜单、工具栏与状态栏。第3篇主要分析Visual C++的应用,包括图形、文本与字体、文档视图结构、文件、文档序列化与注册表操作、应用程序外观设计和面向对象程序设计基础。第4篇主要讲解Visual C++的开发,包括数据库编程、网络编程、线程同步与进程通信、动态链接库、ActiveX技术和Visual C++的调试技术。第5篇讲解如何应用Visual C++进行实际的综合案例开发。
《21天学通Visual C++(第3版)》分析了Visual C++的基础知识体系和开发应用,其中重点介绍了关于Visual C++的应用技巧。本书适合Visual C++初学者学习,可作为大、中专院校师生和培训班的教材,对于Visual C++爱好者,本书也有很大的参考价值。
《21天学通Visual C++(第3版)》附带DVD光盘1张,内容包括超大容量手把手教学视频、电子教案(PPT)、源代码、职场面试法宝等。
第1篇 Visual C++基础篇
第1章 Visual C++ 6.0概述 1
1.1 Visual C++ 6.0简介 1
1.1.1 Visual C++ 6.0的特点 1
1.1.2 Visual C++ 6.0的版本种类和硬件环境 2
1.2 Visual C++ 6.0集成开发环境概览 2
1.2.1 工作区 3
1.2.2 编辑区 3
1.2.3 输出窗口 4
1.3 Visual C++ 6.0集成开发环境菜单简介 4
1.4 Visual C++ 6.0的工具组件 5
1.4.1 C/C++编译器 5
1.4.2 资源编辑器和资源编译器 6
1.4.3 链接器和调试器 6
1.4.4 应用程序向导 6
1.4.5 类向导 7
1.4.6 资源浏览器 8
1.5 第一个Visual C++程序——“Hello World” 9
1.5.1 使用应用程序向导创建工程 9
1.5.2 添加并修改消息处理函数 11
1.5.3 编译、链接和运行 12
1.6 Visual C++ 6.0项目文件类型简介 12
1.7 小结 13
1.8 习题 13
第2章 Windows应用程序框架 18
2.1 基于Windows的应用程序设计 18
2.1.1 基于Windows的应用程序接口(API) 18
2.1.2 句柄的原理 19
2.1.3 Windows应用程序入口——WinMain()函数 20
2.1.4 消息及消息队列机制 20
2.2 MFC的基本概念及应用程序框架 21
2.2.1 MFC的基本概念 22
2.2.2 使用应用程序向导创建MFC应用程序框架 23
2.3 MFC应用程序框架详解 27
2.3.1 应用程序类 28
2.3.2 框架类 29
2.3.3 视图类和文档类 29
2.4 小结 30
2.5 习题 31
第2篇 可视化编程篇
第3章 常用控件 33
3.1 控件的基本概念 33
3.2 Visual C++ 6.0中的控件 33
3.2.1 静态文本控件 35
3.2.2 编辑框控件 38
3.2.3 按钮控件 39
3.2.4 列表框控件 41
3.2.5 组合框控件 41
3.2.6 滚动条控件 43
3.3 控件的应用 43
3.3.1 添加控件到应用程序界面中 44
3.3.2 多个控件的排列布局 44
3.4 控件应用实例 45
3.5 小结 49
3.6 习题 49
第4章 对话框 51
4.1 对话框概述 51
4.1.1 对话框的组成 52
4.1.2 对话框的种类 52
4.1.3 对话框的编辑器 53
4.1.4 对话框的属性 54
4.2 创建对话框 55
4.2.1 添加对话框资源 55
4.2.2 添加控件 56
4.2.3 使用类向导创建对话框类 56
4.2.4 使用类向导添加成员变量 58
4.2.5 添加消息处理函数 61
4.3 模态对话框和非模态对话框 62
4.3.1 构建主程序框架 62
4.3.2 创建非模态对话框 65
4.3.3 对话框的输入/输出——数据交换机制 67
4.3.4 创建模态对话框 68
4.4 小结 69
4.5 习题 69
第5章 消息处理与类向导的使用 72
5.1 消息的种类 72
5.1.1 来自键盘的消息 72
5.1.2 来自鼠标的消息 73
5.1.3 来自窗口的消息 73
5.1.4 来自焦点的消息 74
5.1.5 定时器消息 75
5.1.6 命令消息 75
5.2 使用消息机制的应用实例 76
5.3 类向导的使用 79
5.3.1 启动类向导 79
5.3.2 使用类向导添加消息处理函数 79
5.3.3 添加成员变量 82
5.3.4 添加新类 83
5.4 小结 85
5.5 习题 85
第6章 菜单 87
6.1 Windows的应用程序菜单概述 87
6.1.1 菜单的种类 87
6.1.2 使用Visual C++ 6.0生成的菜单 88
6.2 创建菜单的操作方法 89
6.2.1 添加菜单资源 89
6.2.2 利用菜单编辑器编辑菜单资源 90
6.2.3 将菜单添加到应用程序中 93
6.2.4 添加消息处理函数 94
6.3 菜单的程序设计 97
6.3.1 在程序中获取菜单信息 97
6.3.2 在程序中修改菜单状态 98
6.3.3 在程序中添加、删除、插入菜单或菜单项 101
6.4 快捷菜单——弹出式菜单 103
6.4.1 手动创建快捷菜单 103
6.4.2 使用组件创建快捷菜单 104
6.5 小结 106
6.6 习题 106
第7章 工具栏与状态栏 110
7.1 工具栏介绍 110
7.1.1 工具栏类——CToolBar 111
7.1.2 创建工具栏 111
7.1.3 使用工具栏编辑器设计工具栏按钮 114
7.2 创建工具栏 116
7.2.1 添加工具栏资源 116
7.2.2 设计工具栏按钮 116
7.2.3 将工具栏添加到应用程序 117
7.3 显示/隐藏工具栏 119
7.4 状态栏 123
7.4.1 状态栏介绍 123
7.4.2 状态栏类——CStatusBar 123
7.4.3 创建状态栏 124
7.5 修改状态栏 125
7.5.1 指示器数组 126
7.5.2 修改状态栏 126
7.6 小结 127
7.7 习题 127
第3篇 Visual C++应用篇
第8章 图形 130
8.1 图形设备接口的基本原理 130
8.2 设备描述表的概念及使用 130
8.2.1 设备描述表概述 131
8.2.2 获取设备描述表 131
8.3 Windows的图形设备接口类 132
8.4 GDI对象的创建 133
8.4.1 自定义画刷类(CBrush) 133
8.4.2 自定义画笔类(CPen) 134
8.5 画笔类的使用 134
8.5.1 使用画笔类对象进行画线 135
8.5.2 改进画线功能 137
8.6 画刷类的使用 140
8.6.1 使用带颜色的画刷对象 140
8.6.2 使用带位图的画刷对象 142
8.7 小结 145
8.8 习题 145
第9章 文本与字体 148
9.1 文本编程简介 148
9.1.1 文本编程的基本概念 148
9.1.2 使用GDI类自定义字体对象 149
9.2 字体的使用 150
9.2.1 实现简单文字处理 150
9.2.2 特殊字符的处理 153
9.2.3 具有颜色的文本应用实例 156
9.3 小结 160
9.4 习题 160
第10章 文档视图结构 163
10.1 文档视图结构概述 163
10.1.1 文档和视图的基本原理 163
10.1.2 基于文档视图结构的应用程序 164
10.1.3 基于文档视图结构的程序的组成部分 164
10.1.4 框架窗口 165
10.2 文档/视图类的关联函数 166
10.2.1 视图类中的获取文档函数——GetDocument() 166
10.2.2 文档视图类其他常用的关联函数 167
10.3 单文档视图结构的应用程序 168
10.3.1 单文档视图结构的应用程序概述 168
10.3.2 创建单文档视图应用程序 169
10.4 多文档视图结构的应用程序 171
10.4.1 多文档视图结构的应用程序概述 171
10.4.2 创建多文档视图应用程序 172
10.5 小结 174
10.6 习题 174
第11章 文件 180
11.1 文件的基本概念 180
11.1.1 文件与输入/输出流 180
11.1.2 文件的内容与种类 181
11.2 常见的文件操作 181
11.2.1 打开和关闭顺序文件 181
11.2.2 顺序文件的读/写操作 183
11.2.3 顺序文件读写操作应用实例 183
11.3 MFC中的CFile类 188
11.3.1 CFile类的成员函数详解 189
11.3.2 使用CFile类对象打开文件 189
11.3.3 使用CFile类对象读/写文件 190
11.3.4 使用CFile类对象关闭文件 190
11.4 文件输入/输出的实现实例 191
11.5 “打开”和“保存”对话框 194
11.5.1 创建“打开”对话框 194
11.5.2 创建“保存”对话框 197
11.6 小结 198
11.7 习题 198
第12章 文档序列化与注册表操作 202
12.1 什么是文档序列化 202
12.2 文档序列化的实例 203
12.2.1 实现简单绘图功能的实例 204
12.2.2 添加可序列化的类 206
12.2.3 重载Serialize()函数 207
12.2.4 加入宏 208
12.2.5 构造图形类CGraph 208
12.2.6 保存图形 209
12.2.7 完成绘图功能 210
12.2.8 以序列化方式保存图形 211
12.3 注册表的操作 213
12.3.1 注册表简介 213
12.3.2 注册表的结构 214
12.3.3 读/写注册表 215
12.4 小结 218
12.5 习题 218
第13章 应用程序界面设计 221
13.1 修改应用程序外观样式 221
13.1.1 在框架类中修改程序外观 221
13.1.2 在视图类中修改程序外观 224
13.2 制作动画效果的图标 225
13.3 设置背景图片 227
13.4 小结 232
13.5 习题 233
第14章 面向对象程序设计基础 235
14.1 面向对象技术概览 235
14.1.1 面向对象技术的基本概念和特点 235
14.1.2 面向对象程序设计语言的演化 236
14.2 类对象和类 236
14.2.1 类对象 237
14.2.2 类 237
14.3 对象的属性和方法 239
14.3.1 对象的属性 239
14.3.2 对象的方法 239
14.4 封装、继承和多态 240
14.4.1 封装 240
14.4.2 继承 241
14.4.3 多态 242
14.5 使用Visual C++6.0进行面向对象程序设计 242
14.5.1 类类型的定义 243
14.5.2 类的实例化使用 244
14.5.3 函数的多态形式——重载 246
14.5.4 类的构造函数 248
14.5.5 类的析构函数 249
14.5.6 指向当前对象的指针——this指针 250
14.5.7 类的继承 251
14.5.8 虚函数与多态性 255
14.6 小结 255
14.7 习题 256
第4篇 Visual C++开发篇
第15章 数据库应用程序开发 258
15.1 数据库基础理论简介 258
15.1.1 关系型数据库 258
15.1.2 数据库结构化查询语言 259
15.2 数据库访问技术介绍 259
15.2.1 使用Visual C++ 6.0开发数据库技术的特点 260
15.2.2 使用Visual C++ 6.0开发数据库的接口 260
15.3 使用ODBC进行数据库应用程序开发 260
15.3.1 ODBC技术概述 260
15.3.2 添加ODBC数据源 262
15.4 与ODBC兼容的MFC类 264
15.4.1 CDatabase类及其使用方法 264
15.4.2 CRecordSet类及其使用方法 265
15.4.3 CRecordView类 267
15.5 应用ODBC进行数据库应用编程 267
15.5.1 生成一个ODBC应用程序框架 267
15.5.2 数据库中的记录查询 269
15.5.3 为数据库增加记录 271
15.5.4 修改数据库记录 271
15.5.5 删除数据库记录 271
15.6 ADO简介 271
15.6.1 ADO技术概述 272
15.6.2 ADO中的对象 272
15.7 使用ADO进行数据库应用程序设计 273
15.7.1 导入ADO DLL 274
15.7.2 初始化ADO开发环境 274
15.7.3 使用ADO连接数据库 275
15.7.4 使用ADO函数执行数据库查询命令 278
15.7.5 访问数据库中的数据 279
15.7.6 操作数据 280
15.7.7 关闭数据库连接 280
15.8 应用ADO编程的实例 281
15.9 小结 284
15.10 习题 284
第16章 网络编程 287
16.1 一个简单的网络编程实例 287
16.2 Socket套接字及使用 290
16.2.1 Socket套接字概述 290
16.2.2 创建Socket套接字对象 291
16.2.3 使用套接字对象建立连接 291
16.2.4 发送数据和监听数据 292
16.2.5 数据接收 293
16.2.6 关闭套接字 293
16.3 基于Windows系统的套接字编程机制 294
16.3.1 Windows Sockets简介 294
16.3.2 WinSock编程原理及步骤 294
16.3.3 使用WinSock编程的实例 295
16.4 小结 299
16.5 习题 299
第17章 线程与进程程序设计 303
17.1 进程和线程的基本概念 303
17.2 MFC的线程处理机制 304
17.2.1 MFC线程处理机制概述 304
17.2.2 创建工作者线程 304
17.2.3 创建用户界面的线程 305
17.3 线程的同步 309
17.3.1 线程同步简介 309
17.3.2 线程同步的实现 309
17.4 进程之间的通信 313
17.4.1 剪贴板操作的常用函数 313
17.4.2 剪贴板操作的通信实例 314
17.5 小结 316
17.6 习题 317
第18章 动态链接库开发 319
18.1 一个简单的动态链接库实例 319
18.2 动态链接库详解 322
18.2.1 静态链接库与动态链接库 322
18.2.2 运行与查看动态链接库 323
18.3 Win32 DLL的创建和使用 324
18.4 MFC规则DLL的创建 325
18.4.1 MFC规则DLL简介 325
18.4.2 MFC规则的DLL创建 325
18.5 小结 329
18.6 习题 329
第19章 ActiveX应用程序设计 334
19.1 ActiveX技术简介 334
19.2 ActiveX控件详解 334
19.2.1 ActiveX控件与普通的Windows控件 335
19.2.2 ActiveX控件的属性 335
19.2.3 ActiveX控件的方法 336
19.2.4 ActiveX控件的事件 337
19.3 创建ActiveX控件 337
19.3.1 创建ActiveX控件应用程序外壳 337
19.3.2 添加OnDraw()函数代码 341
19.3.3 实现ActiveX控件与系统时间同步 342
19.4 ActiveX控件的高级应用 344
19.4.1 添加背景色属性 344
19.4.2 添加ActiveX的方法 347
19.4.3 添加ActiveX事件 349
19.5 小结 351
19.6 习题 351
第20章 Visual C++ 6.0的调试技术 354
20.1 Visual C++ 6.0的调试方法 354
20.1.1 错误种类 354
20.1.2 设置调试环境 355
20.1.3 设置调试断点 356
20.1.4 控制调试中的程序运行 359
20.2 使用调试信息查看工具 360
20.2.1 调试信息泡泡 360
20.2.2 变量窗口 360
20.2.3 观察窗口 361
20.2.4 快速查看变量窗口 361
20.3 高级调试技术 362
20.3.1 使用TRACE宏输出调试信息 362
20.3.2 使用断言输出错误信息 363
20.3.3 自建类的Dump()函数 364
20.3.4 检查内存泄漏 364
20.4 调试的应用实例 365
20.5 小结 368
20.6 习题 368
第5篇 案例篇
第21章 综合案例 370
21.1 系统功能概述 370
21.2 系统功能的具体实现 371
21.2.1 创建数据库 371
21.2.2 添加ODBC类型的数据源 372
21.2.3 创建应用程序工程 373
21.2.4 设计软件用户界面 375
21.3 实现成绩浏览功能的操作 377
21.3.1 添加成员变量 377
21.3.2 添加成员函数 378
21.3.3 添加函数程序代码 379
21.3.4 编译并运行 380
21.4 实现添加成绩的功能 381
21.5 实现删除成绩的功能 382
21.6 实现成绩查询的功能 384
21.7 小结 386