第1篇 VC控制台程序设计与面向对象理论 1
第1章 程序设计与VC语言简介 2
1.1 程序设计与程序设计语言 2
1.1.1 程序设计 2
1.1.2 程序设计技术的4个层次 3
1.1.3 算法与程序 3
1.1.4 程序设计方法学 4
1.1.5 程序设计语言 5
1.2.1 结构化程序设计 6
1.2 程序设计方法的演变 6
1.1.6* 程序设计的重要性 6
1.2.2 面向对象程序设计 8
1.2.3 基于组件的程序设计 9
1.2.4* 面向Agent的程序设计 10
1.3 VC语言概述 10
1.3.1 C、C++和VC语言的关系 10
1.3.2 VC控制台程序介绍 11
1.3.3 一个VC单文件应用程序的实现 11
1.3.4 标准设备的输入与输出语句 13
1.3.5 VC控制台程序基本结构与特点 14
习题1 15
1.3.6* VC 6.0的集成开发环境 15
第2章 VC程序设计基础——变量与函数 17
2.1 变量的生存期与作用域 17
2.1.1 变量的5个要素 17
2.1.2 VC程序的存储组织 19
2.1.3 变量作用域及其分类 19
2.1.4 一个VC多文件应用程序的实现 22
2.1.5 变量生存期及其分类 24
2.2.1 地址与指针的概念 26
2.2.2 指针变量的定义与赋值 26
2.1.6* VC中的数据类型 26
2.2 指针与引用 26
2.2.3 数组指针与指针数组 28
2.2.4 动态内存分配:new与delete 29
2.2.5 引用 30
2.3 函数的声明与调用 31
2.3.1 函数与模块 31
2.3.2 函数的声明 32
2.3.4 函数的参数与返回值 33
2.3.3 函数的定义 33
2.3.5 函数调用 34
2.4 函数参数的传递 35
2.4.1 参数的传递方式 35
2.4.2 值传递 35
2.4.3 地址传递 36
2.4.4 引用传递 37
2.4.5* 默认参数 38
习题2 39
3.1.1 抽象 41
第3章 VC程序核心——类与对象 41
3.1 面向对象程序设计的特点 41
3.1.2 封装 42
3.1.3 继承 42
3.1.4 多态 42
3.1.5 以VC作为面向对象程序设计的原因 43
3.1.6* 面向对象程序设计的优点 44
3.2 面向对象的基石——类 44
3.2.1 从结构体到类 44
3.2.2 类的定义 45
3.2.3 类的属性——成员变量 47
3.2.4 类的行为——成员函数 49
3.2.5 类成员的访问控制 53
3.2.6* 类的深入理解 54
3.3 对象 54
3.3.1 对象的声明 54
3.3.2 对象的使用 55
3.3.3 对象的初始化——构造函数 56
3.3.4 对象的撤销——析构函数 56
3.4.1 类与类之间的4种关系 58
3.4 类的继承与派生 58
3.3.5* 对象的深入理解 58
3.4.2 继承的概念 59
3.4.3 派生类的声明 60
3.4.4 基类成员的访问控制 60
3.4.5 派生与继承的应用 63
3.5 类的多态性 64
3.5.1 多态性概述 64
3.5.2 多态性的类型 65
3.5.3 编译时多态性的两种方式——函数重载与运算符重载 65
3.5.4 运行时多态性的实现条件 69
3.5.5 纯虚函数与抽象类 72
3.5.6* 使用虚函数的好处 73
习题3 74
第2篇 VC编程的两种模式——API与MFC编程 77
第4章 Windows程序设计的基本概念 78
4.1 Win32编程特点 78
4.1.1 Windows运行机制——消息驱动 78
4.1.2 应用程序与Windows操作系统紧密相连 79
4.1.3 图形界面 79
4.1.4 Windows基本数据类型 81
4.1.5* VC程序中的命名规则 82
4.2 Windows应用程序用到的基本术语 84
4.3 开发Windows应用程序的基本步骤 86
4.3.1 建立一个Win32工程 86
4.3.2 建立头文件 87
4.3.3 建立Win32 Application实现文件 87
4.3.4 分析Win32应用程序 88
4.3.5* 建立资源文件 90
4.3.6* VC编程流程及各组件作用 90
4.3.7* VC项目中的文件类型 91
习题4 92
第5章 Windows应用程序编程接口API 93
5.1 API概述 93
5.1.1 关于Windows API编程模式 93
5.1.2 API简介 94
5.1.3 Windows核心——三个动态链接库 94
5.1.4 Windows API分类 95
5.1.5* 操作系统的认识 96
5.2 内核服务API函数的使用 97
5.2.1 文件管理内核服务 97
5.2.2 进程操作 100
5.2.3 计算机系统信息操作 103
5.3 网络接口服务 104
5.3.1 套接字的使用与WinSock API 104
5.3.2 Internet服务WinInet 106
5.4 Win32 API编写图形界面程序 107
5.4.1 使用AppWizard生成Windows 32应用程序 107
5.4.2 程序的入口函数WinMain() 109
5.4.3 定义和注册窗口类 110
5.4.4 初始化实例 111
5.4.5 维护消息循环 112
5.4.6 窗口函数和消息处理 113
5.4.7 常见消息的处理 114
5.4.8 几个重要的结构 115
5.4.9* WinMain()函数执行规程描述 116
5.4.10* 利用Win32API编写图形界面的关键 117
5.5 图形设备接口与用户接口服务 117
5.5.1 设备描述表 118
5.5.2 文本函数 119
5.5.3 画直线函数 120
5.5.4 用户接口服务 120
5.5.5 综合实例 121
5.5.6* 在VC中使用FileView视图浏览文件 123
习题5 124
第6章 程序界面的数据——资源 125
6.1 资源概述 125
6.1.1 资源定义 125
6.1.2 Windows资源种类 126
6.1.3 使用Windows资源的函数 127
6.1.4 向项目中添加资源 128
6.1.5 一个使用资源的实例 128
6.2.1 一个使用菜单、对话框资源的实例 130
6.1.6* 使用资源编程的好处 130
6.2 菜单、对话框资源及其应用 130
6.2.2 菜单资源的创建 131
6.2.3 处理菜单消息 132
6.2.4 对话框资源的编辑 133
6.2.5 在对话框资源中添加控件 134
6.2.6 对话框资源与控件属性的设计 135
6.2.7 对话框的调用与响应 135
6.2.8* VC程序Resource View的使用方法 137
习题6 138
第7章 MFC编程的基础知识 139
7.1 MFC概述 140
7.1.1 什么是MFC 140
7.1.2 MFC的设计原理 140
7.1.3 MFC的目标 140
7.1.4* MFC的发展 141
7.1.5* 使用C++和MFC的好处 141
7.2 MFC的层次结构及其子类功能简介 142
7.2.1 MFC中类的层次结构 142
7.2.2 根类CObject 142
7.2.3 应用程序体系结构类 143
7.2.4 可视对象类 144
7.2.5* 预定义的宏 147
7.3 MFC应用程序架构 148
7.3.1 应用程序架构的概念 148
7.3.2 软件复用 148
7.3.3 使用应用程序架构的好处 149
7.3.4 一个基于框架的MFC应用程序 149
7.3.5* VC程序ClassView的使用方法 151
习题7 153
第8章 利用CDC实现绘图程序 154
8.1 图形绘制的基本知识 154
8.1.1 一个简单的图形程序 154
8.1.2 图形操作的接口——GDI 155
8.1.3 图形操作有关的CDC类 156
8.1.4* CDC的内容 157
8.1.5* 设备环境类的三个子类 157
8.2 VC的文本操作 158
8.2.1 文本输出函数 158
8.2.2 文本属性控制 159
8.2.3 文本的字体 160
8.2.4 文本处理实例 161
8.3 CDC的绘图操作 162
8.3.1 画点与画线函数操作 162
8.3.2 绘制封闭图形 163
8.3.3 设置绘图参数 164
8.3.4 绘图模式 164
8.3.5 绘图操作实例 166
8.4.2 使用画笔 168
8.4.1 绘图工具的划分 168
8.4 Windows绘图工具 168
8.4.3 使用画刷 171
8.4.4 使用库存工具 174
习题8 176
第9章 Windows应用程序引擎——消息映射 177
9.1 认识消息 177
9.1.1 消息的产生 178
9.1.2 消息的种类 178
9.1.3 一个应用程序的消息映射分析 179
9.1.5* 用类向导管理消息映射 183
9.1.4 消息映射函数 183
9.2 MFC中消息的发送与接收 185
9.2.1 消息的发送与接收 185
9.2.2 命令消息的路由 185
9.2.3 利用函数发送消息 186
9.2.4 消息的接收与处理 186
9.3 常用的窗口消息 187
9.3.1 键盘消息 187
9.3.2 鼠标消息 191
9.3.3 WM_TIMER消息 193
9.3.4 自定义消息 195
9.3.5* Windows消息监测工具Spy++的使用 197
习题9 198
第10章 用户交互对象——菜单、工具栏和状态栏 200
10.1 菜单 200
10.1.1 一个菜单的综合实例 200
10.1.2 菜单的组成与分类 201
10.1.3 创建菜单资源 202
10.1.4 菜单消息 203
10.1.5 菜单消息的响应 204
10.1.6* 为菜单增加快捷键和加速键 207
10.2 工具栏 208
10.2.1 工具栏简介 208
10.2.2 一个使用工具栏的应用程序 208
10.2.3 创建工具栏资源模板 209
10.2.4 工具栏类CToolBar 209
10.2.5 在应用程序框架中创建工具栏对象 210
10.2.6 工具栏的消息处理机制 212
10.3.2 一个使用状态栏的应用程序 213
10.3.1 状态栏简介 213
10.3 状态栏 213
10.3.3 状态栏类CStatusBar 214
10.3.4 在应用程序框架中创建状态栏对象 215
10.3.5 创建字符串资源 216
10.3.6 状态栏的消息处理 217
习题10 219
第11章 对话框及常用控件 220
11.1 对话框概述 220
11.1.1 对话框简介 220
11.2 对话框程序的创建 221
11.2.1 一个对话框程序 221
11.1.3 对话框的组成 221
11.1.2 对话框的分类 221
11.2.2 创建对话框资源模板 222
11.2.3 利用对话框类CDialog操纵对话框 223
11.2.4 初始化对话框 225
11.2.5 对话框的调用 226
11.2.6 对话框的消息处理 228
11.3.2 静态控件 230
11.3.1 控件简介 230
11.3 标准Windows控件 230
11.3.3 按钮控件 231
11.3.4 编辑控件 232
11.3.5 列表框控件 237
11.3.6 组合框控件 239
11.3.7 控件的类型无关访问 241
11.3.8* 动画控件 245
习题11 247
12.1 文档/视图结构 248
12.1.1 VC开发的应用程序类型 248
第12章 基于文档/视图结构的程序 248
12.1.2 文档/视图结构程序的主要组成类 249
12.1.3 从程序员角度看SDI与MDI应用程序 254
12.1.4 应用程序类 255
12.1.5* 文档/视图结构的优点 256
12.2 框架——视图的容器 256
12.2.1 框架窗口的组成 256
12.2.2 框架窗口的创建和清除 257
12.2.3 框架窗口的子窗口 257
12.2.4* 框架窗口与用户交互对象 257
12.3.2 构造汽车类CCar 258
12.3 文档——管理和组织数据 258
12.3.1 一个汽车管理的SDI应用程序 258
12.3.3 自定义类CCar的序列化 260
12.3.4 文档类CDocument 261
12.3.5 文档类的设计 262
12.3.6 数据存盘——文档数据序列化 263
12.4 视图——显示文档数据,提供用户接口 264
12.4.1 视图及其派生类 264
12.4.2 在视图中绘图 265
12.4.3 用户与视图进行交互 266
习题12 268
12.4.4 用户与视图的交互过程 268
第3篇 VC编程高级篇——基于组件的编程与应用 269
第13章 动态链接库 270
13.1 动态链接库概述 270
13.1.1 动态链接库定义 270
13.1.2 静态链接与动态链接 270
13.1.3 函数的导出与导入 271
13.1.4 隐式链接与显式链接 272
13.1.5 搜索动态链接库 273
13.2.1 动态链接库的分类 274
13.1.6* 使用动态链接库的优点 274
13.2 动态链接库的创建 274
13.2.2 DLL的工作原理 275
13.2.3 实现递归分形树的DLL 276
13.3 动态链接库的显式调用 277
13.3.1 装入动态链接库 277
13.3.2 取得函数地址 278
13.3.3 调用动态链接库的实例 278
习题13 279
14.1 ADO简介 281
第14章 利用ADO组件访问数据库 281
14.2 常用的ADO的对象 282
14.3 使用Access 2000创建数据库 282
14.4 创建ADO数据库访问程序 284
14.4.1 利用ADO技术访问数据库的两种方式 284
14.4.2 采用ADO控件访问数据库 285
14.4.3 采用ADO对象操作数据库 287
14.4.4 一个使用ADO对象访问数据库的实例 290
习题14 293
15.1.1 COM概述 294
15.1 COM组件与ATL 294
第15章 利用ATL编写COM组件 294
15.1.2 COM与软件复用 295
15.1.3 与COM有关的概念 295
15.1.4 ATL简介 297
15.2 利用ATL创建COM组件 298
15.3 在VC和VB中使用COM组件 304
15.3.1 调用COM组件的过程 304
15.3.2 在VC中创建COM组件客户 305
15.3.3 在VB中使用COM组件 307
习题15 308
参考文献 309