目 录
前言
第一部分 开始学习Visual C++5
第1章 VisualC++5简介
1.1 探讨Visual C++5
1.1.1 Visual C++5开发环境
1.1.2 DeveloperStudio工具
1.1.3 Developer Studio Wiza rds
1.1.4 MFC 库
1.2 启动Developer Studio
1.2.1 探讨InfoVi ewer
1.2.2 VisualC++编辑器
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 用App Wizard 联编Windows应用程序
1.4.2 探讨 HelloMFCApp Wizard 工程
1.4.3 用MFC处理输出
1.5 总结
1.6 问答
1.7 复习
1.7.1 小测验
1.7.2 练习
第2章 编写简单的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章 结构、类和MFC类库
3.1 使用函数
3.1.1 声明函数的类型
3.1.2 定义函数
3.1.3 调用函数
3.2 什么是结构
3.3 什么是类
3.3.1 类与实例
3.3.2 构造函数
3.3.3 析构函数
3.4 使用MFC进行Windows编程
3.4.1 HelloWinMFC示例
3.4.2 联编HelloWin实例
3.5 Windows程序的公用元素
3.5.1 窗口无所不在
3.5.2 客户区和非客户区
3.5.3 消息和函数
3.6 语句和表达式
3.6.1 语句
3.6.2 声明
3.6.3 赋值
3.6.4 其他公用表达式和运算符
3.7 矩形和区域
3.8 总结
3.9 问答
3.10 复习
3.10.1 小测验
3.10.2 练习
第二部分 对话框和基本控件
第4章 对话框和C++类
4.1 什么是面向对象设计
4.1.1 为什么要用面向对象设计
4.1.2 在类中描述对象
4.2 什么是对话框
4.2.1 理解消息对话框
4.2.2 使用对话框用于输入
4.3 如何使用对话框
4.3.1 增加消息框
4.3.2 使用位“或”(or)运算
4.3.3 增加对话框
4.3.4 增加静态文本控件
4.3.5 为对话框创建类
4.3.6 为WMINITDIALOG 增加消息处理函数
4.3.7 为新对话框增加菜单选择
4.4 创建基于对话框的工程
4.4.1 AppWizard支持基于对话框的工程
4.4.2 探讨HelloDialog App Wizard 工程
4.4.3 使用对话框编辑器
4.5 总结
4.6 问答
4.7 复习
4.7.1 小测验
4.7.2 练习
第5章 按钮控件
5.1 什么是条件表达式
5.1.1 用选择语句选择一条执行路径
5.2 什么是按钮
5.2.1 什么是下压按钮
5.2.2 什么是单选按钮
5.2.3 什么是复选框
5.2.4 什么是分组框
5.2.5 MFC对按钮的支持
5.2.6 使用按钮的一个示例
5.3 将按钮控件绑定到CButton对象上
5.3.1 向对话框类增加按钮事件
5.3.2 改变按钮的标签
5.3.3 激活和禁用按钮
5.3.4 隐藏按钮
5.4 定义和设置Tab键次序
5.5 总结
5.6 问答
5.7 复习
5.7.1 小测验
5.7.2 练习
第6章 使用编辑控件
6.1 标识符的作用域和生存期
6.1.1 使用不同的作用域类型
6.1.2 理解标识符生存期
6.2 理解编辑控件
6.2.1 为什么使用编辑控件
6.2.2 MFC对编辑控件的支持
6.2.3 联编一个SDI测试工程
6.2.4 向对话框增加编辑控件
6.3 编辑控件属性
6.4 给编辑控件绑定一个CEdit对象
6.5 从编辑控件获取输入文本
6.6 使用DDV和DDX例程向对话框传递参数
6.6.1 为什么使用DDV和DDX例程
6.6.2 怎样使用DDV和DDX例程
6.6.3 把控件的值与成员变量关联
6.6.4 使用DDX函数交换编辑控件消息
6.7 总结
6.8 问答
6.9 复习
6.9.1 小测验
6.9.2 练习
第7章 使用列表框和组合框控件
7.1 使用循环
7.1.1 使用while循环
7.1.2 使用do-while循环
7.1.3 使用for循环
7.2 什么是列表框(listBox)
7.2.1 为什么使用列表框
7.2.2 MFC对列表框的支持
7.2.3 给对话框增加一个列表框
7.3列表框属性
7.3.1 使用CList Box 类
7.3.2 为列表框增加一个条目
7.3.3 从列表框删除条目
7.3.4 接收列表框消息
7.4 组合框
7.4.1 MFC对组合框的支持
7.4.2 组合框属性
7.4.3 一个组合框实例
7.5 总结
7.6 问答
7.7 复习
7.7.1 小测验
7.7.2 练习
第三部分 Windows和MFC结构
第8章 消息和事件驱动程序
8.1 Windows编程模式简介
8.2 在Document/View中使用AppWizard
8.2.1 Document/View结构的简单回顾
8.2.2 用AppWizard创建的应用程序类型
8.2.3 使用AppWi zard 创建一个SDI应用程序
8.3 消息
8.3.1 测试鼠标单击的程序
8.3.2 消息队列
8.3.3 消息处理的机制
8.4 用ClassWizard处理消息
8.4.1 MouseTst处理的消息
8.4.2 更新CMouseTst视图类
8.4.3 运行MouseTst
8.5 MFC基类
8.5.1 CObject基类
8.5.2 CWnd基类
8.5.3 使用CObject和CWnd基类的一个实例
8.6 总结
8.7 问答
8.8 复习
8.8.1 小测验
8.8.2 练习
第9章 Document/View 结构
9.1 VisualC++对Document/View的支持
9.1.1 SDI和MDI应用程序
9.1.2 为什么使用Document/View
9.1.3 使用AppWizard
9.1.4 使用ClassWizard
9.2 指针和引用
9.2.1 怎样使用指针
9.2.2 间接和地址运算符
9.2.3 使用间接运算符
9.2.4 使用引用
9.2.5 使用new和delete来创建动态对象
9.2.6 使用new[]和delete[]来创建数组
9.2.7 指针用于派生类
9.2.8 使用指针指向基类
9.2.9 使用虚拟函数
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 MFC菜单支持
10.2 增加新的菜单条目
10.2.1 打开菜单资源
10.2.2 编辑菜单资源
10.2.3 菜单条目属性
10.2.4 增加一个消息处理函数
10.3 创建一个快捷菜单
10.3.1 创建资源
10.3.2 增加消息处理函数
10.3.3 捕捉消息
10.4 使用键盘加速键
10.4.1 显示键盘加速键资源
10.4.2 增加键盘加速键.
10.4.3 键盘加速键实例
10.5 总结
10.6 问答
10.7 复习
10.7.1 小测验
10.7.2 练习
第四部分 图形接口
第11章 设备环境
11.1 什么是设备环境
11.1.1 GDI对象的类型
11.1.2 设备环境类型
11.1.3 硬件不相关
11.2 怎样使用设备环境
11.2.1 Windows对设备环境的支持
11.2.2 选择一个GDI对象
11.3 储备对象
11.4 DCTest:一个设备环境实例
11.4.1 创建映射方式对话框
11.4.2 设置映射模式
11.4.3 从设备环境获取消息
11.5 在Windows应用程序中使用颜色
11.6 总结
11.7 问答
11.8 复习
11.8.1 小测验
11.8.2 练习
第12章 使用笔和笔刷
12.1 什么是笔
12.1.1 MFC对笔的支持
12.1.2 使用装饰笔
12.1.3 使用几何笔
12.1.4 使用CPen类
12.1.5 使用储备笔
12.2 用笔绘画的实例
12.2.1 修改MappingMode对话框
12.2.2 修改CDCTestView类
12.2.3 修改CDCTestView成员函数
12.3 什么是笔刷
12.3.1 MFC对笔刷的支持
12.3.2 笔刷的阴影样式
12.3.3 使用CBrush类
12.3.4 逻辑刷
12.3.5 使用储备笔刷
12.3.6 使用CommonColor对话框
12.3.7 改变MappingMode对话框和CMap-ModeDlg类
12.3.8 处理WMTLCOLOR 消息
12.3.9 更新CDC Test View类
12.3.10 对CDCTestView成员函数的改变
12.4 总结
12.5 问答
12.6 复习
12.6.1 小测验
12.6.2 练习
第13章 字体
13.1 什么是字体
13.2 确定字体属性
13.2.1 字体的高度和宽度
13.2.2 字体字符集
13.2.3 影响字体输出的属性
13.2.4 字体间距和族属性
13.2.5 字体粗细
13.2.6 其他的字体属性
13.3 为Windows程序创建字体
13.3.1 用CFont创建字体
13.3.2 用LOGFONT结构生成字体
13.4 选择和配置合适的字体
13.4.1 储备字体对象
13.4.2 为窗口设置字体
13.4.3 使用公共字体对话框
13.5 总结
13.6 问答
13.7 复习
13.7.1 小测验
13.7.2 练习
第14章 图标与光标
14.1 什么是图标
14.2 用图像编辑器创建图标
14.2.1 插入一个新图标资源
14.2.2 装载图标
14.2.3 改变程序的图标
14.2.4 从图像列表中检索图标
14.2.5 在按钮上显示一个图标
14.3 什么是光标
14.4 在Windows程序中使用光标
14.4.1 创建光标资源
14.4.2 给光标加一热点
14.4.3 改变光标
14.4.4 有条件地改变光标
14.4.5 使用标准光标
14.4.6 把光标变成沙漏
14.4.7 裁剪光标
14.5 总结
14.6 问答
14.7 复习
14.7.1 小测验
14.7.2 练习
第15章 使用位图
15.1 什么是位图
15.1.1 VisualC++对位图的支持
15.1.2 在一个示例工程中加入位图
15.1.3 装入及显示位图
15.2 DDB与DIB的比较
15.2.1 DIB问题
15.2.2 DIB的处理
15.2.3 DIB图像数组
15.2.4 256色DIB
15.2.5 Windows调色板简介
15.2.6系统调色板
15.3 Dib实例
15.3.1 CDI Bitmap 类
15.3.2 CBmpPalette类
15.3.3 CDibDoc类的变化
15.3.4 主框架类的改变
15.3.5 CDibView类的改变
15.4 总结
15.5 问答
15.6 复习
15.6.1 小测验
15.6.2 练习
第五部分 公共控件
第16章 Up-Down控件 进程和滑杆控件
16.1 公共控件概览
16.1.1 使用Up-Down控件
16.1.2 示例程序
16.1.3 在对话框内添加Up- Down控件
16.1.4 Up-Down控件的属性
16.1.5 增加相关控件
16.1.6 使用CSpinButton类
16.1.7 改变Up-Down控件的工作
16.2 使用滑杆控件
16.2.1 确定何时使用滑杆控件
16.2.2 滑杆控件的属性
16.3 使用进程控件
16.3.1 用滑杆控件更新进程控件
16.3.2 初始化滑杆控件和进程控件
16.3.3 从滑杆控件到进程控件的消息
处理
16.4 总结
16.5 问答
16.6 复习
16.6.1 小测验
16.6.2 练习
第17章 使用图像列表和位图
17.1 什么是图像列表
17.2 怎样使用图像列表
17.2.1 创建一个图像列表
17.2.2 用ClmageList::Draw函数显示
图像列表
17.2.3 显示透明图像
17.2.4 显示覆盖图像
17.3 总结
17.4 问答
17.5 复习
17.5.1小测验
17.5.2 练习
第18章 列表查看控件
18.1 什么是列表查看控件
18.2 列表查看控件的属性
18.2.1 列表查看控件实例
18.2.2 在ListEx对话框内添加控件
18.2.3 关联图像列表和列表控件
18.2.4 创建图像列表
18.2.5 在列表查看控件中添加条目
18.2.6 插入列表查看条目
18.2.7 增加报表查看的列消息
18.2.8 决定所选的条目
18.2.9 CListExDlg类的修改
18.2.10 改变列表查看控件的当前查看
方式
18.2.11 转换查看类型
18.2.12就地编辑条目
18.3 总结
18.4 问答
18.5 复习
18.5.1小测验
18.5.2 练习
第19章 树查看
19.1什么是树查看控件
19.2MFC对树查看控件的支持
19.3用树查看控件作为视图
19.3.1在CTreeView中添加条目
19.3.2运用树查看控件的类型
19.4在对话框内添加树查看控件
19.5设置树查看控件的属性
19.6创建一个图像列表控件
19.7修改对话框类
19.8从树查看控件中删除条目
19.9树查看控件通知
19.9.1在树查看控件中增加拖放功能
19.9.2实现内部标签编辑
19.10 总结
19.11 问答
19.12复习
19.12.1 小测验
19.12.2 练习
第20章 使用ActiveX控件
20.1 什么是ActiveX控件
20.2 为什么要使用ActriveX控件
20.3 怎样使用ActiveX控件
20.3.1 使用组件和控件库
20.3.2 在对话框编辑器内添加ActiveX
控件
20.3.3 用ClassWizard配置ActiveX控件
20.4 使用ActiveX自定义控件的实例
20.4.1 什么是栅格控件
20.4.2 在对话框编辑器内添加栅格ActiveX
控件
20.4.3 在主对话框内加入栅格控件
20.4.4 初始化栅格控件
20.4.5 检测栅格控件事件
20.4.6 重新计算栅格控件的内容
20.5总结
20.6问答
20.7复习
20.7.1小测验
20.7.2 练习
第六部分 高级MFC编程
第21章 打印
21.1什么是Windows程序的打印
21.1.1了解MFC打印过程
21.1.2创建MFC打印实例
21.1.3探索CPrintInfo类
21.1.4使用OnPreparePrinting函数
21.1.5使用OnBeginPrinting函数
21.1.6使用OnPrepareDC 函数
21.1.7使用OnPrint函数
21.1.8使用OnEnd Printing函数
21.1.9查询打印设备环境
21.2给MFCPrint增加更多的功能
21.2.1CMFCPrintView构造函数与析构
函数
21.2.2 在OnBeginPrinting函数内分配
资源
21.2.3 在OnPrePareDC函数内处理多
个页面
21.2.4 修改MFCPrintOnPrint函数
21.2.5 用OnEndPrinting函数释放资源
21.3 总结
21.4 问答
21.5 复习
21.5.1 小测验
21.5. 2练习
第22章 序列化
22.1 什么是序列化
22.2 为什么使用序列化
22.3 一个Document/View序列化实例
22.3.1 序列化Customers工程
22.3.2 用于序列化的MFC类
22.3.3 使用插入和提取运算符
22.3.4 使用序列化宏
22.3.5 重载Serialize函数
22.3.6 创建可序列化的集合
22.4 什么是Document/View序列化
22.5 Document/View应用程序怎样被
序列化
22.5.1 创建一个新文档
22.5.2 存储文档
22.5.3 关闭文档
22.5.4 装载文档
22.6 总结
22.7 问答
22.8 复习
22.8.1 小测验
22.8. 2练习
第23章 高级视图
23.1 什么是表单视图
23.1.1 视图的其他类型是什么
23.1.2 使用表单视图
23.1.3 为表单视图创建对话框资源
23.1.4 向工程增加一个表单视图类
23.1.5 使用CFormView取代CView
23.1.6 在表单视图类中处理事件和消息
23.1.7 处理OnInitialUpdate
23.1.8 防止视图类被改变大小
23.2 使用多视图
23.2.1 怎样使用多视图
23.2.2 创建新视图
23.2.3 修改OnDraw函数
23.2.4 创建和维护多文档模板
23.2.5 增加共享资源
23.2.6 为新视图增加菜单选项
23.2.7 更新多视图
23.2.8 增加OnInitialUpdate和OnUpdate
成员函数
23.3 总结
23.4 问答
23.5 复习
23.5.1 小测验
23.5.2 练习
第24章 创建ActiveX控件
24.1 什么是ActiceX控件
24.2 ActiveX控件的属性、事件和方法
24.2.1属性
24.2.2 事件
24.2.3 方法
24.3 一个ActiveX控件实例
24.3.1 创建工程
24.3.2 MFC 支持ActiveX
24.3.3 绘制控件
24.3.4 为OleEdit定义属性
24.3.5 处理字符输入
24.3.6 修改控件的位图
24.4 测试ActiveX控件
24.4.1 为控件选择测试容器
24.4.2 使用TSTCON32测试容器
24.4.3 测试属性
24.5 总结
24.6 问答
24.7 复习
24.7.1 小测验
24.7.2 练习
第七部分 附 录
附录A Dev eloper Studio IDE
附录B 小测验答案