第一章 设计自己的开发环境 1
1.1 设计自己的工具栏 1
1.1.1 定制工具栏的显示状态 1
1.1.2 定制工具栏的方法 1
1.1.3 定制工具栏的步骤 2
1.2 使用Customize对话框 3
1.3 使用Options对话框 6
第二章 使用并理解AppWizard向导 14
2.1 AppWizard向导的优点 14
2.2 建立应用程序 16
2.3 运行程序 23
2.4 用AppWizard来创建DLL文件 25
2.5 Sample工程文件列表 26
2.5.1 MainFrm.cpp: 27
2.5.2 MainFrm.h 29
2.5.3 ReadMe.txt 31
2.5.4 Resource.h 34
2.5.5 Sample.clw 34
2.5.6 Sample.cpp 37
2.5.7 Sample.dsp 41
2.5.9 Sample.h 46
2.5.8 Sample.dsw 46
2.5.10 Sample.plg 48
2.5.11 Sample.rc 49
2.5.12 SampleDoc.cpp 59
2.5.13 SampleDoc.h 61
2.5.14 SampleView.cpp 63
2.5.15 SampleView.h 66
2.5.16 StdAfx.cpp 67
2.5.17 StdAfx.h 68
第三章 使用ClassWixard 69
3.1 使用WizardBar向导工具栏 71
3.2 ClassWizard识别类的机制 74
3.3 创建自己的对话类 75
3.4 调用ClassWizard 78
3.5 使用ClassWizard 79
3.5.1 Message Maps选项 80
3.5.2 Member Variables(成员变量)选项 81
3.5.3 DDX和DDV 83
3.6 向工程添加类 85
3.7 添加非MFC类 87
第四章 Visual C++与MFC基础类 89
4.1 CObject类的通用功能 89
4.1.1 在运行时识别类 90
4.1.3 诊断服务 91
4.1.2 持久性概念 91
4.2 通用Microsoft基础类说明 93
4.2.1 MFC的基本数据类型 93
4.2.2 对象集 94
4.2.3 Microsoft基础类中的异常处理机制 95
4.2.4 用于文件I/O的基础类 99
4.2.5 诊断支持 100
4.3 全局变量、通用宏和全局函数 100
4.3.1 全局变量 100
4.3.2 通用宏 100
4.3.3 全局函数 105
4.4 用于Windows程序设计的MFC类简介 111
4.4.1 应用程序类 112
4.4.2 菜单 112
4.4.3 Microsoft Windows的窗口类型 112
4.4.4 设备环境类简介 114
4.4.5 用于对象链接和嵌入(OLE)的类 115
4.4.6 基本Windows数据类型 116
4.5 用于Windows程序设计的宏和全局函数 116
4.5.1 全局变量 116
4.5.2 宏 116
4.5.3 全局函数 136
4.6.1 CWnd类 139
4.6 基本控件类参考 139
4.6.2 CButton类 151
4.6.3 CEdit类 152
4.6.4 CScrollBar类 156
4.6.5 CComboBox类 157
4.6.6 CListBox类 161
第五章 Visual C++6.0中动态链接库的设计 167
5.1 动态链接库简介 167
5.2 用Application Wizard生成动态链接库的工程文件 167
5.3 设计自己的动态链接库 170
5.4.1 测试程序的主要功能 173
5.4 测试自己设计的动态链接库 173
5.4.2 创建测试程序 175
5.4.3 界面的可视化修改 176
5.4.4 编写自己的代码 177
5.5 测试动态链接库程序的功能 180
第六章 掌握ActiveX控件设计方法 182
6.1 关于ActiveX的基础知识 182
6.1.1 ActiveX概述 182
6.1.2 ActiveX文档服务器 182
6.1.3 ActiveX文档容器 183
6.2 ActiveX控件 183
6.2.1 ActiveX控件概述 183
6.2.2 创建ActiveX控件应用程序 185
6.2.4 在ActiveX控件启动文件中增加代码 186
6.2.3 使用ActiveX控件的准备工作 186
6.3 ActiveX控件的事件、方法和属性 187
6.3.1 ActiveX控件的事件 187
6.3.2 向ActiveX控件增加储备事件 188
6.3.3 向ActiveX控件增加自定义事件 190
6.3.4 ActiveX控件的方法 192
6.3.5 给ActiveX控件增加储备方法 193
6.3.6 给ActiveX控件增加自定义方法 194
6.3.7 ActiveX控件的属性 195
6.3.8 给ActiveX控件增加储备属性 196
6.3.9 给ActiveX控件增加自定义属性 198
6.3.10 ActiveX控件的高级属性的实现 200
6.3.11 访问环境属性 201
6.4 ActiveX控件的属性页 201
6.4.1 ActiveX控件的属性页 201
6.4.2 增加额外的用户属性页 203
6.4.3 使用储备属性页 205
6.5 提供上下文敏感帮助 206
6.6 ActiveX控件中的字体与图片 208
6.6.1 ActiveX控件中的字体 208
6.6.2 使用字体储备属性 208
6.6.3 使用字体自定义属性 209
6.6.4 自定义图片属性 213
6.6.5 在ActiveX控件中实现一个自定义的图片属性 214
第七章 Internet浏览器的设计 216
7.1 设计浏览器 216
7.2 将浏览器控件加入到对话框 220
7.3 检验程序结果 227
第八章 设计一个数据库支持的应用程序 228
8.1 设置ODBC(32bit) 228
8.2 设计register程序 231
9.1 COM和ATL简介 237
9.1.1 COM介绍 237
第九章 掌握Visual C++6.0的ATL技术 237
9.1.2 ATL介绍 238
9.2 ATL入门示例 239
9.2.1 建立工程 240
9.2.2 增加控件 241
9.2.3 给控件增加属性 243
9.2.4 修改绘图代码 245
9.2.5 增加事件 248
9.2.6 增加属性页 253
9.2.7 把控件放到网页上 257
9.2.8 代码分析 259
10.1 快速建立ATL工程文件 263
10.1.1 用ATL COM AppWizard创建工程文件 263
第十章 深入应用ATL技术 263
10.1.2 ATL COM AppWizard生成的文件 264
10.1.3 添加对象和控件 264
10.1.4 给已存在的对象或控件增加一个新的接口 268
10.2 ATL COM对象基础 268
10.2.1 实现CComObjectRootEx 269
10.2.2 实现CcomObject,CcomAgg Object和CComPolyObject 269
10.2.3 Idispatch和IerrorInfo的支持 270
10.2.4 改变缺省类工厂和聚合模型 270
10.2.5 建立一个聚合 270
10.3.2 实现一个窗口 271
10.3.1 使用一个窗口 271
10.3 ATL窗口类 271
10.3.3 实现一个对话框 274
10.3.4 使用容器窗口 275
10.4 连接点 275
10.4.1 连接点类 276
10.4.2 给对象增加一个连接点 276
10.4.3 连接点的例子 277
10.5 枚举器(Enumerator) 277
10.6 代理产生器 278
10.7 ATL服务 279
10.7.1 CServiceModule类的成员函数 280
10.7.2 注册人口 281
10.7.3 DCOMCNFG 282
10.7.4 服务进程的调试技巧 282
10.8 ATL对象的调试技巧 283
10.8.1 使用DebugBreak 283
10.8.2 使用QueryInterface调试 283
10.8.3 使用引用计数调试 283
第十一章 使用ATL注册构件 285
11.1 创建Registrar脚本 285
11.1.1 理解巴克斯范式(Backus Nauer Form[BNF])语法 285
11.1.2 理解结构树 286
11.1.3 注册脚本示例 287
11.1.4 使用可重置参数(Registrar的预处理器) 289
11.1.5 激活脚本 291
11.2 设置Registrar代码的静态连接 293
11.3 ATL类概述 293
第十二章 Visual C++6.0与数据的连接 297
12.1 制作一个数据库处理程序 297
12.1.1 配置ODBC 297
12.1.2 建立数据库处理程序 300
12.2 对数据库程序的改进 303
12.3 实现对数据库的管理 304
第十三章 掌握ISAPI技术 313
13.1 利用ISAPI Extension Wizard快速建立ISAPI程序 313
13.2 HTML语言简介 318