第一章 Visual C++6.0新增特性 1
1.1 本章简介 1
1.2 Visual C++6.0新增特性和功能 1
1.2.1 Visual C++6.0概述 1
1.2.2 编译器 3
1.2.3 调试器 3
1.2.4 编辑器 4
1.2.5 项目 6
1.2.6 向导 8
1.2.7 MFC类库 10
1.2.8 数据库支持 12
1.2.9 例子程序 12
1.2.10 工具 13
1.3 Visual C++6.0的版本介绍 14
1.4 本章小结 14
习题 14
第二章 对话框和控件 15
2.1 本章简介 15
2.2 理解对话框 15
2.2.1 创建对话框资源 16
2.2.2 创建示例对话框 18
2.2.3 建立对话框类 19
2.2.4 使用对话框类 21
2.2.5 无模式对话框 21
2.2.6 显示对话框 22
2.2.7 使用列表框控件 24
2.2.8 使用单选按钮 27
2.3 本章小结 28
习题 28
3.2 控件应用程序 29
第三章 Windows的公共控件 29
3.1 本章简介 29
3.1 过程状态条控件 31
3.3.1 创建过程状态条 31
3.3.2 初始化过程状态条 32
3.3.3 处理过程状态条 32
3.4 滑块控件 34
3.4.1 创建滑块控件 34
3.4.2 初始化滑块 35
3.4.3 处理滑块控件 35
3.5 Up-Down控件 36
3.6 图像列表控件 38
3.6.1 创建图像列表 38
3.6.2 初始化图像列表 38
3.7 列表视控件 39
3.7.1 创建列表视 40
3.7.2 创建列表视的栏 43
3.7.3 创建列表视的条目 44
3.7.4 处理列表视 45
3.8 树视控件 46
3.8.1 创建树视 47
3.8.2 创建树视目录 49
3.8.3 处理树视 50
3.9 Rich Edit控件 50
3.9.1 创建Rich Edit控件 51
3.9.2 初始化Rich Edit控件 52
3.9.3 处理Rich Edit控件 53
3.10 本章小结 56
习题 56
4.1 本章简介 57
4.2 消息队列 57
第四章 消息和命令处理 57
4.3 消息循环 58
4.4 消息映射 60
4.4.1 消息映射“宏” 60
4.4.2 消息映射如何工作 61
4.5 MFC处理消息 62
4.5.1 ClassWizard帮程序员获取消息 62
4.5.5 消息列表 65
4.6 命令 66
4.6.1 命令更新 66
4.6.2 ClassWizard帮程序员获取命令和命令更新 68
4.7 本章小结 69
习题 69
第五章 文档和视 70
5.1 本章简介 70
5.2 理解文档类 70
5.3 理解视类 73
5.4 创建应用 75
5.5 其他视类 77
5.6 文档模板、视和框架窗口 79
5.7.2 改进例程序 80
5.7 可持续类和文件I/O 80
5.7.1 对象和可持续性 80
5.8 本章小结 81
习题 81
第六章 在屏幕上绘图 82
6.1 本章简介 82
6.2 理解设备上下文 82
6.3 例程序介绍 83
6.3.1 实现例程序 84
6.3.2 使用字体 86
6.3.3 使用笔 90
6.3.4 使用刷子 91
6.4 滚动窗口 93
6.4.1 创建滚动窗口应用程序 94
6.5 本章小结 98
习题 98
第七章 打印和打印预览 99
7.1 本章简介 99
7.2 理解MFC关于打印和打印预览基本功能 99
7.3 多页打印 103
7.3.1 设置每页坐标原点 106
7.3.2 MFC和打印 108
7.4 本章小结 111
习题 111
第八章 状态条、工具条和菜单条 113
8.1 本章简介 113
8.2 工具条 113
8.2.1 删除工具条 114
8.2.2 添加工具条按钮 115
8.2.3 CToolBar类的成员函数 117
8.3 状态条 118
8.3.1 创建新命令ID 119
8.3.2 创建默认的字符串 120
8.3.3 将ID添加到指示器数组中 120
8.3.4 创建窗格的命令更新处理函数 121
8.3.5 设置状态条的外观 122
8.4 菜单条 124
8.4.1 添加菜单项 125
8.4.2 添加快捷菜单 128
习题 130
8.5 本章小结 130
第九章 创建一个完整的应用程序 131
9.1 本章简介 131
9.2 创建显示字符串的例程序 131
9.2.1 用AppWizard创建应用程序框架 132
9.2.2 显示字符串 132
9.2.3 添加菜单项 134
9.2.4 创建对话框 135
9.2.5 在Options对话框中加入字符串的外观选项 140
习题 144
9.3 本章小结 144
第十章 帮助文件 146
10.1 本章简介 146
10.2 不同类型的帮助 146
10.2.1 激活帮助 147
10.2.2 帮助的外观 147
10.2.3 使用帮助 149
10.2.4 帮助编程 149
10.3 帮助系统的组成 149
10.3.1 AppWizard的帮助支持 150
10.3.3 帮助命令的程序实现 151
10.3.2 设计你的帮助方式 151
10.3.4 上下文帮助的编程 152
10.3.5 写帮助文本 155
10.3.6 修改占位字符串 156
10.3.7 增加帮助主题 158
10.3.8 调整目录 162
10.4 本章小结 164
习题 164
11.2.1 类CPropertySheet 165
11.2 属性表和属性页类简介 165
11.1 本章简介 165
第十一章 属性表和向导 165
11.2.2 类CPropertyPage 166
11.3 一个简单的属性表例子 167
11.3.1 用AppWizard生成程序框架 167
11.3.2 创建两个对话框资源 167
11.3.3 创建3个新类 168
11.3.4 修改CPSheet类 169
11.3.5 修改主菜单资源 169
11.3.6 为菜单项“属性表”添加处理函数 170
11.3.7 修改CPropSheetView类,响应“属性表”菜单 171
11.4 创建向导的基本知识 173
11.4.1 设置向导模式 173
11.4.2 设定向导页按钮 173
11.4.3 显示向导 173
11.4.4 向导通知消息 173
11.5 向导的例子程序 174
11.5.1 运行AppWizard生成程序框架 174
11.5.2 添加对话框资源 174
11.5.3 为三个对话框资源生成类 178
11.5.4 新建CWizardSheet类 179
11.5.5 添加用于显示向导的菜单项 180
11.5.6 添加菜单项处理函数 181
11.5.7 显示属性页字符串,并设置属性页按钮 183
11.5.8 运行程序 186
11.6 本章小结 188
习题 188
第十二章 ActiveX容器 189
12.1 本章简介 189
12.2 定制ActiveX容器的框架 189
12.3.1 增加成员变量m_rect 194
12.3 选择OLE对象、改变其尺寸和位置 194
12.3.2 增加ItemHitted函数 195
12.3.3 修改OnDraw函数 196
12.3.4 添加一个鼠标单击事件 198
12.3.5 改变光标形状 199
12.4 保存OLE对象 200
12.5 复制和粘贴OLE对象 201
12.5.1 复制操作 202
12.5.2 粘贴操作 203
12.6 在位激活OLE对象 205
12.7 删除OLE对象 206
12.8 服务器和容器的参数传递 207
12.9 拖放操作 210
12.9.1 增加必要的变量和成员函数 210
12.9.2 修改LButtonDown函数 212
12.9.3 重载类CContDemoView的OnDrop函数 214
12.9.4 重载类CContDemoView的OnDragEnter函数 216
12.9.5 重载类CContDemoView的OnDragOver函数 216
12.11 本章小结 218
12.10 如何插入一个ActiveX控件 218
12.9.6 重载类CContDemoView的OnDragLeave函数 218
习题 219
第十三章 ActiveX服务器 220
13.1 本章简介 220
13.2 定制小型服务器 220
13.2.1 生成基本框架 221
13.2.2 分析MFC向导生成的代码 223
13.2.3 定制MiniServer 231
13.2.4 测试 234
13.2.5 其他问题 235
13.3 定制全服务器 236
13.4 定制自动化服务器 237
13.4.1 用MFC设计进程内自动化服务器 237
13.4.2 用MFC设计进程外自动化服务器 248
13.4.3 用ATL设计进程内自动化服务器 253
13.5 本章小结 259
习题 260
14.1 本章简介 261
14.2 有关ActiveX控件的基本概念 261
第十四章 ActiveX控件 261
14.3 使用MFC定制ActiveX控件 262
14.3.1 形成控件的框架 262
14.3.2 给控件添加属性 265
14.3.3 定制属性页 269
14.3.4 给控件添加方法 270
14.3.5 给控件添加事件 272
14.4 使用ATL编写ActiveX控件 279
14.4.1 使用ATL COM AppWizard创建基本的ActiveX控件框架 279
14.4.2 添加属性 282
14.4.3 添加方法 288
14.4.4 添加事件 290
14.4.5 制作属性页 295
14.5 本章小结 302
习题 302
第十五章 ODBC及SQL介绍 303
15.1 本章简介 303
15.2 ODBC介绍 303
15.2.1 ODBC的概念 303
15.2.2 ODBC的组成 304
15.2.3 ODBC应用程序的工作过程 306
15.3.1 SQL的概念 309
15.3 SQL介绍 309
15.3.2 数据定义语言(DDL) 310
15.3.3 数据控制语言(DCL) 313
15.3.4 数据处理语言(DML) 314
15.4 本章小结 328
习题 328
第十六章 利用MFC编写ODBC程序 329
16.1 本章简介 329
16.2 对数据源的配置 329
16.3 利用Appwizard来生成一个数据库应用程序的框架 331
16.4 建立记录集与视图的联系以便显示记录集中的记录 339
16.5 增加,删除,更新,筛选及排序记录集的操作 342
16.5.1 增加及删除一个记录 342
16.5.2 对记录的筛选及排序 352
16.5.3 实现参数化的查询 362
16.6 利用ClassWizard来生成自己的记录集类 368
16.7 对多个表的操作 372
16.7.1 实现对两个表的联合操作 373
16.7.2 查询某个部门的平均工资 385
16.8.1 利用ClassWizard来生成自己的记录视类 398
16.8 实现多个记录集与多个记录视 398
16.8.2 使用多个记录视窗口 400
16.9 本章小结 408
习题 409
第十七章 利用DAO编写数据库程序 410
17.1 本章简介 410
17.2 利用DAO来编写自己的数据库应用程序 410
17.2.1 有关DAO的基本概念 410
17.2.2 通过AppWizard编写DAO数据库应用程序 411
17.3 本章小结 419
习题 420
第十八章 用WinSock通信 421
18.1 本章简介 421
18.2 基本网络概念 421
18.2.1 客户机/服务器模型 421
18.2.2 套接字概念 422
18.3 提供WinSock API低层接口的类CAsyncSocket 423
18.3.1 初始化套接字 423
18.3.2 创建CAsyncSocket对象 424
18.3.3 发送和接收数据报 425
18.3.4 服务器接受连接 426
18.3.6 发送和接收流数据 427
18.3.5 套接字与服务器连接 427
18.3.7 关闭套接字 428
18.4 提供WinSock API高层接口的类CSocket 428
18.5 本章小结 429
习题 429
第十九章 利用MFC WinInet类编程 431
19.1 本章简介 431
19.2 WinInet类介绍 431
19.3 利用WinInet类编制客户程序 432
19.3.1 利用AppWizard生成程序框架 432
19.3.2 设计对话框 434
19.3.3 添加成员变量 437
19.3.4 查询Http和本地文件的处理函数 438
19.3.5 查询Ftp目录 443
19.4 本章小结 450
习题 450
第二十章 电子函件和浏览器 451
20.1 本章简介 451
20.2 了解MAPI 451
20.2.1 客户机应用程序 451
20.2.3 通用消息调用CMC 452
20.2.2 MAPI分类 452
20.3 MFC提供的MAPI功能 454
20.4 编写自己的浏览器 457
20.4.1 功能强大的类CHtmlView 457
20.4.2 编写自己的浏览器 458
20.5 本章小结 470
习题 470
21.2 动态网页内容 471
21.2.1 静态网页与动态网页 471
21.1 本章简介 471
第二十一章 用ActiveX控件激活网页 471
21.2.2 ActiveX控件和Java Applet的比较 472
21.2.3 把控件嵌入网页 473
21.2.4 控件的安全性问题 476
21.2.5 用于网页的控件需考虑的问题 480
21.3 利用AppWizard创建更快的ActiveX控件 481
21.3.1 ActiveX控件的特征 481
21.3.2 ActiveX控件的高级特征 482
21.4 本章小结 492
习题 492