引言
第一部分 Visual C++ 6起步
第1学时 使用Visual C++ 6
1.1 浏览Visual C++ 6
1.1.1 Visual C++ 集成开放环境
1.1.2 Developer Studio包含的编程工具
1.1.3 用Developer Studio Wizards产生代码
1.1.4 MFC库
1.2 Developer Studio初步
1.2.1 浏览Microsoft Developer Network库的在线帮助
1.2.2 Viusual C++编辑器
1.2.3 使用编辑命令
1.3 创建你的第一个C++源程序
1.3.1 开始创建第一个程序
1.3.2 编辑你的第一个C++源程序
1.3.3 存储一个源文件
1.3.4 建立Hello项目
1.3.5 运行你的第一个C++程序
1.4 用AppWizard创建一个Windows程序
1.4.1 AppWizard建立Windows应用程序
1.4.2 浏览HelloMFC AppWizard项目
1.4.3 用MFC处理输出
1.5 总结
1.6 问题与解答
1.7 工作室
1.7.1 小测验
1.7.2 练习
第2学时 编写简单的Visual C++程序
2.1 C++程序中的通用元素
2.1.1 基本C++数据类型
2.1.2 理解类型安全
2.1.3 使用不同的变量类型
2.1.4 给变量命名
2.1.5 给变量赋值
2.2 一个简单的C++程序
2.2.1 创建Hello2项目
2.2.2 为你的程序创建源文件
2.2.3 运行Hello2程序
2.2.4 分析Hello2程序
2.3 总结
2.4 问题与解答
2.5 工作室
2.5.1 小测验
2.5.2 练习
第3学时 函数、结构和类
3.1 什么是表达式和语句
3.1.1 语句
3.1.2 声明
3.1.3 赋值
3.1.4 其他的通用表达式和运算符
3.2 使用函数
3.2.1 声明函数原形
3.2.2 定义函数
3.2.3 函数调用
3.3 什么是结构
3.4 什么是类
3.4.1 C++类的一部分
3.4.2 类对实例
3.4.3 构造函数
3.4.4 析构函数
3.4.5 一个简单C++类的例子
3.5 矩形框和区域
3.6 总结
3.7 问题与解答
3.8 工作室
3.8.1 小测验
3.8.2 练习
第二部分 对话框和基本控件
第4学时 使用对话框
4.1 什么是对话框
4.2 使用对话框输入
4.3 在Viual C++中创建对话框
4.3.1 添加消息框
4.3.2 添加对话框
4.3.3 按用户需要修改对话框的属性
4.3.4 给你的对话框添加一个控件
4.3.5 创建一个对话框类
4.3.6 添中消息句柄来初始化对话框
4.3.7 给新对话框添加选择菜单
4.4 创建基于对话框的项目
4.4.1 AppWizard对创建基于对话框的项目的支持
4.4.2 浏览HelloDialog的项目
4.4.3 使用对话框编辑器
4.5 总结
4.6 问题与解答
4.7 工作室
4.7.1 小测验
4.7.2 练习
第5学时 按钮控件
5.1 什么是按钮
5.1.1 什么是Push buttons
5.1.2 什么是Radio buttons
5.1.3 什么是Check boxes
5.1.4 什么是Owner-drawn buttons
5.1.5 什么是Group boxes
5.1.6 MFC对控件的支持
5.1.7 一个应用按钮控件的简单项目
5.2 为按钮设置成员变量
5.2.1 向Dialog Box Class(对话框类)
5.2.2 改变按钮标识
5.3 用条件语句调控程序
5.3.1 使用if语句
5.3.2 使用Compound语句
5.3.3 在if语句中使用else
5.3.4 使用switch语句
5.5 启用或禁用按钮
5.6 隐藏按钮
5.7 定义或设定Tab键切换顺序
5.8 总结
5.9 问题与解答
5.10 工作室
5.10.1 小测验
5.10.2 练习
第6学时 使用编辑控件
6.1 理解编辑控件
61.1 为什么使用编辑控件
6.1.2 MFC对编辑控件的支持
6.1.3 建立一个SDI的测试项目
6.1.4 给对话框添加编辑控件
6.2 编辑控件的属性
6.3 将CEdit对象与编辑控件相关联
6.4 接收从编辑控件中输入的文本
6.5 用DDV和DDX例行程序给对话框传递参数
6.5.1 为什么使用DDV和DDX
6.5.2 使用DDV和DDX例行程序
6.5.3 使控件与成员变量值相关
6.5.4 使用DDX函数实现编辑控件的信息交换
6.6 总结
6.7 问题与解答
6.8 工作室
6.8.1 小测验
6.8.2 练习
第7学时 使用列表框和组合框
7.1 什么是列表框
7.1.1 为什么使用列表框
7.1.2 MFC对列表框的支持
7.2 给对话框加入列表框
7.2.1 列表框属性
7.2.2 使用ClistBox类
7.2.3 为列表框增加一个列表项
7.2.4 从列表框中删除列表项
7.2.5 接收列表框消息
7.3 什么是组合框
7.3.1 组合框的属性
7.3.2 MFC对组合的支持
7.3.3 组合框的实例
7.4 使用循环
7.4.1 使用while循环
7.4.2 使用do-while循环
7.4.3 使用for循环
7.5 总结
7.6 问题与解答
7.7 工作室
7.7.1 小测验
7.7.2 练习
第三部分 Windwos和MFC结构
第8学时 消息和事件驱动编程
8.1 理解Windows编程模式
8.2 什么是消息
8.3 一个测试鼠标击键的程序
8.3.1 什么是消息队列
8.3.2 如何处理消息
8.4 用ClassWizard处理消息
8.4.1 MouseTst处理的消息
8.4.2 更新MouseTst View类
8.4.3 运行MoustTst
8.5 什么是MFC基类
8.5.1 CObject基类
8.5.2 CWnd基类
8.5.3 使用CObjcet和CWnd基类的实例
8.6 总结
8.7 问题与解答
8.8 工作室
8.8.1 小测验
8.8.2 练习
第9学时 文档与视图结构
9.1 Visual C++对文档与视图的支持
9.1.1 SDI和MDI应用
9.1.2 为什么要用文档与视图
9.1.3 使用MFC AppWizard
9.1.4 使用ClassWizard
9.2 指针变量与引用型变量
9.2.1 指针运算符与取址运算符
9.2.2 使用new和delete来建立动态对象
9.2.3 使用new[]和delete[]建立数组
9.2.4 使用派生类指针变量
9.2.5 使用指向基类的指针变量
9.2.6 使用虚拟函数
9.3 探索Document/View接口
9.3.1 创建数据模型
9.3.2 初始化文档的内容
9.3.3 取文档指针
9.4 总结
9.5 问题与解答
9.6 工作室
9.6.1 小测验
9.6.2 练习
第10学时 菜单
10.1 菜单是什么
10.1.1 命令执行过程
10.1.2 哪个类处理菜单选中引发的消息
10.2 建立一个菜单
10.3 添加新的菜单列表项
10.3.1 打开菜单资源
10.3.2 编辑菜单资源
10.3.3 菜单列表项属性
10.3.4 添中一个消息处理函数
10.4 建立快捷菜单
10.4.1 为弹出式菜单建立资源
10.4.2 添加消息处理函数
10.4.3 陷阱消息
10.5 使用加速键
10.5.1 显示加速键资源
10.5.2 添加加速键
10.5.3 一个加速键范例
10.6 总结
10.7 问题与解答
10.8 工作室
10.8.1 小测验
10.8.2 练习
第四部分 图形接口
第11学时 设备上下文
11.1 设备上下文是什么
11.1.1 GDI对象的类型
11.1.2 设备上下文的类型
11.1.3 硬件无关性
11.2 怎能样使用设备上下文
11.2.1 Wizard支持设备上下文
11.2.2 选择GDI对象
11.3 堆对象
11.4 设置设备上下文图像模式(map mode)
11.5 一个设备上下文例子
11.5.1 建立图像模式对话框
11.5.2 从设备上下文中接收信息
11.6 在Windows应用程序中使用颜色
11.7 总结
11.8 问题与解答
11.9 工作室
11.9.1 小测验
11.9.2 练习
第12学时
12.1 什么是画笔
12.1.1 画笔的类型
12.1.2 使用CPen类
12.1.3 使用堆画笔
12.2 用画笔绘画
12.2.1 修改图纸模式对话框
12.2.2 修改CDCTest类
12.2.3 修改CDCTestView成员函数
12.3 什么是画刷
12.3.1 MFC对画刷的支持
12.3.2 构造画刷
12.3.3 逻辑画刷
12.3.4 使用堆画刷
12.3.5 使用普通颜色对话框
12.3.6 允许用户控制颜色
12.3.7 改变对话框和控件的颜色
12.3.8 更新CDCTextView类
12.3.9 在CDCTestView类中使用画刷
12.4 总结
12.5 问题和解答
12.6 工作室
12.6.1 小测验
12.6.2 练习
第13学时 字体
13.1 什么是字体
13.1.1 字体类型
13.1.2 字体家族
13.2 指定字体属性
13.2.1 字体高度和宽度属性
13.2.2 字体特性集
13.2.3 影响字体输出的属性
13.2.4 字体间距和家族属性
13.2.5 字体宽度属性
13.2.6 其他字体属性
13.3 用MFC来创建字体的例子
13.3.1 用CFont创建字体
13.3.2 用LOGFONT结构创建字体
13.4 选择配置正确的字体
13.4.1 使用堆字体对象
13.4.2 为窗体设定字体
13.4.3 使用普通字体对话框
13.5 编制字体
13.5.1 为Common Font(普通)字体对话框添加支持
13.5.2 添加一个LONGONT变量到CDCTestView类
13.5.3 添加一个新的菜单项
13.5.4 修改OnDraw成员函数
13.6 总结
13.7 问题与解答
13.8 工作室
13.8.1 小测验
13.8.2 练习
第14学时 图标和光标
14.1 什么是图标
14.2 用图像编辑创建一个新的图标
14.2.1 插入一个新的图标资源
14.2.2 改变程序的图标
14.2.3 在你的程序中加载图标
14.2.4 在按钮上显示图标
14.3 什么是光标
14.4 在Windows程序中使用光标
14.4.1 创建光标资源
14.4.2 为光标添加一个热点
14.4.3 修改一个光标
14.4.4 条件改变光标
14.4.5 使用标准光标
14.4.6 将光标改为沙漏
14.5 总结
14.6 问题与解答
14.7 工作室
14.7.1 小测验
14.7.2 练习
第五部分 通用控件
第15学时 旋钮、进度条和滑块控件
15.1 标准控件
15.2 旋钮控件
15.2.1 使用旋钮控件
15.2.2 将旋钮控件加到对话框中
15.2.3 旋钮控件的属性
15.2.4 添中一个关联控件
15.2.5 使用CSpinButtonCtrl类
15.2.6 改变旋钮控件的行为
15.3 使用滑块控件
15.3.1 决定何时使用滑块控件
15.3.2 滑块控件的属性
15.4 使用进度控件
15.4.1 使用滑块更新进度控件
15.4.2 初始化滑块和进度控件
15.4.3 处理从滑块到进度控件的消息
15.5 总结
15.6 问题与解答
15.7 工作室
15.7.1 小测验
15.7.2 练习
第16学时 使用位图和图像列表
16.1 什么是位图
16.1.1 使用Viusal CC++创建位图
16.1.2 向项目添加位图
16.1.3 加载并显示位图
16.2 什么是图像列表
16.2.1 透明图像
16.2.2 覆盖图像
16.3 使用图像列表
16.3.1 创建图像列表
16.3.2 使用CImageListDraw函数显示图像列表
16.3.3 显示透明图像
16.3.4 显示覆盖图像
16.4 总结
16.5 问题与解答
16.6 工作室
16.6.1 小测验
16.6.2 练习
第17学时 列表视图控件
17.1 什么是列表视图控件
17.2 列表视图控件的属性
17.3 使用一个列表视图控件
17.3.1 将图像列表与列表控件相关联
17.3.2 创建图像列表
17.3.3 向列表视图控件添中项目
17.3.4 决定选择哪个项目
17.3.5 对CListExDlg类的修改
17.3.6 改变列表视图控件的当前视图
17.4 总结
17.5 问题与解答
17.6 工作室
17.6.1 小测验
17.6.2 练习
第18学时 树形视图控件
18.1 什么是树形视图控件
18.2 支持MFC的树形视图控件
18.3 把树形视图控件用作视图
18.3.1 向树形视图中添加项目
18.3.2 向树形视图控件增加格式
18.4 把树形视图控件加到对话框中
18.4.1 设置树视图控件属性
18.4.2 创建图像列表控件
18.4.3 修改对话框类
18.5 从树形视图控件中删除条目
18.6 执行内置的卷标编辑
18.7 总结
18.8 问题与解答
18.9 工作室
18.9.1 小测验
18.9.2 练习
第19学时 使用ActiveX控件
19.1 什么是ActiveX控件
19.2 为什么要使用ActiveX控件
19.3 如何使用ActiveX控件
19.3.1 使用Components and ControlsGallery(组件库和控件库)
19.3.2 向对话框编辑器中增加ActiveX控件
19.3.3 使用ClassWizard配置ActiveX控件
19.4 使用ActiveX定制控件的实例
19.4.1 什么是网格控件
19.4.2 向对话框编辑器添加ActiveX控件
19.4.3 向主对话框增加网格控件
19.4.4 初始化网格控件
19.4.5 检测网格控件事件
19.4.6 重新计算网格控件的内容
19.5 总结
19.6 问题与解答
19.7 工作室
19.7.1 小测验
19.7.2 练习
第六部分 高级MFC编程
第20学时 动态HTML
20.1 什么动态HTML
20.2 Visual C++对动态HTML的支持
20.2.1 漫游(Navigating)
20.2.2 有用的ChtmlView类成员函数
20.2.3 向用户程序添加动态HTML
20.3 使用MFC和动态HTML
20.3.1 使用CHtmlView的简单浏览
20.3.2 浏览源文件
20.3.3 浏览用户的主页
20.3.4 使用动态HTML文档资源
20.4 总结
20.5 问题与解答
20.6 工作室
20.6.1 小测验
20.6.2 练习
第21学时 打印
21.1 在Windows程序中如何进行打印
21.2 理解MFC打印例程
21.2.1 创建MFC打印示例程序
21.2.2 检查当前打印输出的状态
21.2.3 使用OnPreparePrinting函数
21.2.4 使用OnBegingPprinting函数
21.2.5 使用OnPrepareDC函数
21.2.6 使用OnPrint函数
21.2.7 使用OnEndPrinting函数
21.3 查询打印设备上下文关联
21.4 增加打印功能到MFC Print示例程序中
21.4.1 初始化和清除打印资源
21.4.2 为打印为分配资源
21.4.3 多页打印
21.4.4 在OnPrint中用OnPrint函数打印操作报告
21.4.5 打印之后释放资源
21.5 总结
21.6 问题与解答
21.7 工作室
21.7.1 小测验
21.7.2 练习
第22学时 用MFC保存程序数据
22.1 什么是持久性和串行化
22.2 为什么要使用串行化
22.3 Document/View串行化实例
22.3.1 用于串行化的MFC类
22.3.2 使用插入和提取操作符
22.3.3 使用串行化宏
22.3.4 扩充串行化函数
22.3.5 创建串行化集合
22.4 Document/View应用程序如何串行化
22.4.1 创建新文档
22.4.2 存储文档
22.4.3 关闭文档
22.4.4 加载文档
22.5 总结
22.6 问题和解答
22.7 工作室
22.7.1 小测验
22.7.2 练习
第23学时 表单视图
23.1 什么是表单视图
23.1.1 滚动视图
23.1.2 编辑视图
23.2 使用表单视图
23.2.1 为表单视图创建一个对话框资源
23.2.2 向项目中添中表单视图
23.2.3 使用CFormView代替CWiew
23.2.4 处理表单视图类中的事件和消息
23.2.5 处理OnInitalUpdate
23.2.6 防止视图改变大小
23.4 总结
23.5 问题与解答
23.6 工作室
23.6.1 小测验
23.6.2 练习
第24学时 创建ActiveX控件
24.1 什么是ActiveX控件
24.2 ActiveX控件属性、事件和方法
24.2.1 属性(property)
24.2.2 事件(Event)
24.2.3 方法(Method)
24.3 创建ActiveX控件
24.3.1 创建ActiveX控件项目
24.3.2 MFC对ActiveX控件的支持
24.3.3 绘制控件
24.3.4 定义属性
24.3.5 在样本控件中处理字符输入
24.3.6 修改控件的位图
24.4 测试ActiveX控件
24.4.1 为控件选择测试容器
24.4.2 使用ActiveX控件测试容器
24.4.3 测试属性和方法
24.5 总结
24.6 问题与解答
24.7 工作室
24.7.1 小测验
24.7.2 练习
第七部分 附录
附录 A 小测验答案
附录 B Developer Studio集成开发环境