第一章 Visual C++ 5.0简介 1
1.1 Visual C++ 5.0的新功能 1
1.1.1 专业版的新功能 1
1.1.2 学习版的新功能 3
1.1.3 企业版的新功能 3
1.2 Visual C++ 5.0的集成开发环境一览 4
1.2.1 File菜单 4
1.2.2 Edit菜单 6
1.1.3 View菜单 7
1.2.4 Build菜单 7
1.2.5 Window菜单 8
第二章 创建一个简单的应用程序 9
2.1 分析应用程序的主要功能 9
2.2 建立工程文件 10
2.2.1 工程 11
2.2.2 工程工作区 11
2.2.3 生成应用程序的工程文件 11
2.3 应用程序的可视化编程 13
2.3.1 使用AppWizard工具 13
2.3.2 再论工程工作区 18
2.3.3 使用ClassWizard工具 21
2.4 应用程序的代码编程 25
2.4.1 为Say按钮连接代码 25
2.4.2 为Say按钮编写程序代码 26
2.4.3 为 Exit按钮连接代码 27
2.4.4 为Exit按钮编写程序代码 28
第三章 C++语言的基础知识 29
3.1 操作符、表达式与语句 29
3.1.1 操作符与表达式 29
3.1.2 语句 33
3.2 常量和变量 37
3.2.1 常量定义 37
3.2.2 变量定义 38
3.3 函数 39
3.3.1 函数原型的声明 39
3.3.2 函数的定义 39
3.3.3 函数的局部变量和静态变量 40
3.3.4 内联函数 41
3.3.5 函数重载 41
3.4 数据类型 43
3.4.1 数组 43
3.4.2 字符串 46
3.4.3 C++类型 50
3.4.4 指针 52
3.5 输入/输出管理 55
3.5.1 输出 55
3.5.2 输入 56
3.5.3 注释 56
3.5.4 应用实例 56
第四章 面向对象的基础知识 58
4.1 比较面向过程与面向对象的程序设计 58
4.2 面向对象的基本概念 59
4.2.1 对象 59
4.2.2 类 60
4.2.3 面向对象方法的主要特征 61
4.3 类与对象 61
4.3.1 类的定义 61
4.3.2 对象的定义 63
4.4 构造函数与析构函数 64
4.4.1 构造函数 64
4.4.2 析构函数 68
4.5 多态 69
4.5.1 静态联编和动态联编 70
4.5.2 虚函数 70
4.5.3 纯虚函数和抽象基类 72
4.6 类的静态成员 73
4.6.1 静态数据成员 73
4.6.2 静态成员函数 75
4.7 友员 76
4.7.1 友员函数 76
4.7.2 友员类 78
第五章 MFC类库 80
5.1 MFC类库分类 80
5.2 MFC中主要的类 81
5.2.1 根类:CObject类 81
5.2.2 应用程序体系结构类 81
5.2.3 可视对象类 82
5.2.4 通用类 84
5.2.5 OLE类 85
5.2.6 ODBC数据库类 85
第六章Visual C++常用控件介绍 86
6.1 常用控件及其属性一览 86
6.1.1 常用控件一览 86
6.1.2 常用控件及其相应的基类 89
6.2 设置控件属性 90
第七章 Windows界面中的重要控件—编辑框 93
7.1 分析应用程序的主要功能 93
7.2 建立工程文件 95
7.3 应用程序的可视化编程 96
7.4 应用程序的代码编程 99
7.4.1 给编辑框连接变量 99
7.4.2 修改编辑框的特性 100
7.4.3 给Showl按钮连接代码 102
7.4.4 给Clearl按钮连接代码 103
7.4.5 给Show2按钮连接代码 104
7.4.6 给Clear2按钮连接代码 105
7.4.7 给按钮IDC_COPY_BUTTON连接代码 106
7.4.8 给Exit按钮和Undo按钮连接代码 107
7.5 CEdit类及其成员函数 109
第八章 Windows界面中的重要控件—滚动条 113
8.1 分析应用程序的主要功能 113
8.2 建立工程文件 114
8.3 应用程序的可视化编程 115
8.4 应用程序的代码编程 117
8.4.1 给编辑框和滚动条连接变量 117
8.4.2 滚动条的初始化 118
8.4.3 给Exit按钮连接代码 120
8.4.4 给滚动条消息添加代码 121
8.4.5 给Left按钮添加代码 125
8.4.6 给Right按钮添加代码 126
8.4.7 给Reset按钮添加代码 126
8.4.8 将编辑框设置为只读的 127
8.5 CScrollBar类 127
第九章 Windows界面中的重要控件—复选框 130
9.1 分析应用程序的主要功能 130
9.2 建立工程文件 131
9.3 应用程序的可视化编程 132
9.4 应用程序的代码编程 134
9.4.1 给复选框和编辑框连接变量 134
9.4.2 给Exit按钮连接代码 135
9.4.3 给复选框添加代码 136
9.4.4 给Enable和Disable按钮添加代码 139
9.4.5 给Show和Hide按钮添加代码 141
9.4.6 将编辑框设置为只读的 142
9.5 CButton类 143
第十章 Windows界面中的重要控件—单选按钮 146
10.1 分析应用程序的主要功能 146
10.2 建立工程文件 148
10.3 应用程序的可视化编程 149
10.4 应用程序的代码编程 153
10.4.1 给单选按钮和编辑框连接变量 153
10.4.2 初始化单选按钮 154
10.4.3 给Exit按钮连接代码 155
10.4.4 给Show按钮添加代码 156
10.4.5 将编辑框设置为只读的 158
第十一章 Windows界面中的重要控件—组合框 160
11.1 分析应用程序的主要功能 160
11.2 建立工程文件 162
11.3 应用程序的可视化编程 163
11.4 应用程序的代码编程 165
11.4.1 给单选按钮和编辑框连接变量 165
11.4.2 初始化单选按钮和组合框 167
11.4.3 给Exit按钮连接代码 169
11.4.4 给Show按钮添加代码 170
11.4.5 将编辑框设置为只读的 171
11.5 CComboBox类 172
第十二章 Windows界面中的重要控件—菜单 177
12.1 分析应用程序的主要功能 177
12.2 建立工程文件 179
12.3 应用程序的可视化编程 180
12.3.1 对话框的界面设计 180
12.3.2 在对话框中增加菜单资源 181
12.3.3 给菜单连接一个类 184
12.3.4 连接菜单和应用程序的主窗口 186
12.4 应用程序的代码编程 188
12.4.1 给File菜单的Exit项连接代码 188
12.4.2 给File菜单的Voice项连接代码 188
12.4.3 给File菜单的Show项连接代码 189
12.4.4 给Help菜单的About项连接代码 190
12.4.5 给命令按钮连接代码 190
第十三章 Windows界面中的重要控件—对话框 193
13.1 分析应用程序的主要功能 193
13.2 建立工程文件 195
13.3 应用程序的可视化编程 196
13.3.1 应用程序主窗口的界面设计 196
13.3.2 设计对话框的界面 198
13.3.3 给对话框连接一个类 201
13.3.4 给对话框IDD_DIALOG1中的控件连接变量 202
13.4 应用程序的代码编程 202
13.4.1 给主对话框的Exit按钮连接代码 202
13.4.2 创建类CMyDlgl的一个对象 203
13.4.3 初始化IDD_MYDLG1对话框 205
13.4.4 给对话框的OK按钮连接代码 206
13.4.5 给对话框的Cancel按钮连接代码 208
13.4.6 给应用程序主对话框的Select按钮连接代码 209
13.4.7 给应用程序主对话框的Display按钮连接代码 209
13.5 CListBox类 210
第十四章 Windows界面的重要控件-工具条和状态条 216
14.1 分析应用程序的主要功能 216
14.2 建立工程文件 219
14.3 应用程序的可视化编程 220
14.3.1 应用程序主窗口的界面设计 220
14.3.2 菜单条的可视化实现 221
14.3.3 工具条的可视化实现 222
14.3.4 为菜单定制状态条 224
14.4 应用程序的代码编程 226
14.4.1 给Message1菜单项添加代码 226
14.4.2 给Message2菜单项添加代码 226
14.4.3 给Message3菜单项添加代码 227
14.5 检验应用程序 228
第十五章 制作单文档界面的应用程序 229
15.1 分析应用程序的主要功能 229
15.2 建立工程文件 232
15.3 应用程序的可视化编程 236
15.3.1 应用程序主窗口的界面设计 236
15.3.2 菜单条的可视化实现 237
15.3.3 给对话框IDD_EXAM10_FORM中的控件连接变量 237
15.4 应用程序的代码编程 238
15.4.1 声明文档类中的数据成员 238
15.4.2 初始化文档类的数据成员 240
15.4.3 初始化视类的数据成员 241
15.4.4 连接文档类和视类的数据成员 242
15.4.5 向文件中写数据和读数据 245
15.4.6 进一步完善应用程序 247
15.5 执行应用程序 248
15.6 CView类 248
15.7 增强应用程序的功能 250
15.7.1 分析增强后的应用程序的主要功能 250
15.7.2 应用程序的可视化编程 251
15.7.3 应用程序的代码编程 251
15.7.4 执行增强功能后的应用程序 272
15.7.5 CObList类 272
第十六章 制作多文档界面的应用程序 277
16.1 分析应用程序的主要功能 277
16.2 建立工程文件 283
16.3 应用程序的可视化编程 287
16.3.1 应用程序窗口的界面设计 287
16.3.2 菜单的可视化实现 289
16.4 应用程序的代码编程 290
16.4.1 声明视类的数据成员 290
16.4.2 定义文档类中的数据成员 291
16.4.3 初始化视类的数据成员 292
16.4.4 向文件中写数据和读数据 294
16.4.5 实现一个文档的多个视 295
16.5 增强应用程序的功能 299
16.5.1 增加分割条 299
16.5.2 在菜单中加入split选项 301
16.6 检验应用程序 301
第十七章 创建与使用动态链接库 302
17.1 什么是动态链接库 302
17.2 建立动态链接库的工程文件 302
17.3 定制动态链接库的两个主要文件 305
17.4 测试动态链接库 309
17.4.1 分析用于测试动态链接库的应用程序的主要功能 309
17.4.2 创建测试用应用程序的工程文件 311
17.4.3 应用程序的可视化编程 312
17.4.4 应用程序的代码编程 313
17.4.5 检验用于测试动态链接库的应用程序 317
第十八章 ActiveX控件 318
18.1 关于ActiveX的基础知识 318
18.1.1 ActiveX概述 318
18.1.2 ActiveX文档服务器 318
18.1.3 ActiveX文档容器 319
18.2 ActiveX控件 319
18.2.1 ActiveX控件概述 319
18.2.2 创建ActiveX控件应用程序 321
18.2.3 使用ActiveX控件的准备工作 322
18.2.4 在ActiveX控件启动文件中增加代码 323
18.3 ActiveX控件的事件、方法和属性 323
18.3.1 ActiveX控件的事件 323
18.3.2 向ActiveX控件增加储备事件 324
18.3.3 向ActiveX控件增加自定义事件 326
18.3.4 ActiveX控件的方法 328
18.3.5 给ActiveX控件增加储备方法 329
18.3.6 给ActiveX控件增加自定义方法 330
18.3.7 ActiveX控件的属性 331
18.3.8 给ActiveX控件增加储备属性 332
18.3.9 给ActiveX控件增加自定义属性 334
18.3.10 ActiveX控件的高级属性的实现 336
18.3.11 访问环境属性 337
18.4 ActiveX控件的属性页 337
18.4.1 控件的属性页 337
18.4.2 增加额外的用户属性页 339
18.4.3 使用储备属性页 341
18.5 提供上下文敏感帮助 342
18.6 ActiveX控件中的字体与图片 344
18.6.1 ActiveX控件中的字体 344
18.6.2 使用字体储备属性 344
18.6.3 使用字体自定义属性 345
18.6.4 自定义图片属性 349
18.6.5 在ActiveX控件中实现一个自定义的图片属性 349
第十九章 初步掌握ATL技术 352
19.1 建立ATL工程文件 352
19.1.1 用ATL COM AppWizard创建工程文件 352
19.1.2 ATL COM AppWizard生成的文件 353
19.1.3 添加对象和控件 353
19.1.4 给已存在的对象或控件增加一个新的接口 357
19.2 ATL COM对象基础 357
19.2.1 实现CComObjectRootEx 358
19.2.2 实现CComObject、CComAggObject和CComPolyObject 358
19.2.3 IDispatch和IErrorInfo的支持 359
19.2.4 改变缺省类工厂和聚合模型 359
19.2.5 建立一个聚合 359
19.3 ATL窗口类 360
19.3.1 使用一个窗口 360
19.3.2 实现一个窗口 360
19.3.3 实现一个对话框 363
19.4 连接点 364
19.4.1 连接点类 365
19.4.2 给对象增加一个连接点 365
19.4.3 连接点的例子 366
19.5 枚举器 366
19.6 代理产生器 367
19.7 ATL对象的调试技巧 368
19.7.1 使用DebugBreak 368
19.7.2 使用QueryInterface调试 368
19.7.3 使用引用计数调试 368
参考文献 369