第一部分 基础
第一章 入门
1.1 Windows98中有什么新特性
1.2 对用户而言这意味着什么
1.3 对开发人员而言意味着什么
1.4 VusualStudio6有何新特性
1.5 VisualC++HelloWordl程序
1.6 VisualC++Win32控制参应用程序
1.7 HelloWorld3ATL控件
1.8 HelloWorld4Java小应用程序
1.9 HelloWorld5Java应用程序
1.10 HelloWorld6VisuclBasic应用程序
1.11 小结
第二章 菜单
2.1 改变缺省菜单资源
2.1.1 编辑菜单资源
2.1.2 创建菜单
2.1.3 创建菜单处理程序
2.2 MFC中的菜单的消息
2.3 菜单命令范围
2.4 处理菜单输入
2.5 键盘加速器
2.5.1 关于键盘输入
2.5.2 定义加速键
2.5.3 选择适当的键盘加速器
2.5.4 多个加速器表
2.6 在程序执行中动态改变菜单
2.6.1 获得当前的CMenu对象
2.6.2 改变已存在的弹出式菜单
2.6.3 MFC的永久和临时处理程序映射
2.7 上下文菜单
2.8 创建一下文菜单以改变窗口
2.9 小结
第三章 鼠标与键盘
3.1 输入基础和系统状态
3.2 鼠标输入
3.3 创建鼠标消息处理程序
3.4 屏幕与窗口间的坐标变换
3.5 创建一个可处理鼠标事件的MFC程序
3.6 非客户鼠标光标
3.7 改变鼠标光标
3.8 创建一个用于改变鼠标光标的MFC演示程序
3.9 捕捉鼠标
3.10 限制鼠标的移动
3.11 键盘输入
3.11.1 键盘输入的转化
3.11.2 回显键盘焦点
3.12 键盘演示程序
3.13 小结
第四章 图形
4.1 介绍图形设备接口
4.2 图形的类型
4.2.1 文本作为图形
4.2.2 光栅图形
4.2.3 矢量图形
4.3 GDI设备
4.3.1 物理设备
4.3.2 伪设备
4.4 设备描述表
4.4.1 DC绘科属性
4.4.2 一个简单的OnDraw()函数
4.5 WM_PAINT消息
4.5.1 绘图坐标
4.5.2 需要PAINT消息
4.5.3 PAINT消息以外的绘图
4.6 控制文本的外观
4.6.1 基本的文本属性
4.6.2 有关字体的知识
4.7 画笔和刷子
4.7.1 CPen类
4.7.2 CBrush类
4.7.3 Pen'BrushDemo程序
4.8 映射方式
4.9 光栅操作
4.10 在窗口中绘图
4.10.1 GraphicsDemol程序
4.10.2 文本绘制函数
4.10.3 文本坐标计算
4.11 剪辑区域
4.12 小结
第五章 位图.调色板.DIB和双重缓冲
5.1 创建CBitmap对象
5.2 半截和设置位图内容
5.3 向屏幕绘制CBitmaps
5.4 光栅操作
5.5 BlitDemo
5.6 调色板和颜色
5.6.1 逻辑调色板
5.6.2 调色板事件
5.6.3 SetSystetmPaletteUse()函数
5.7 与设备封锁关的位图
5.7.1 DIB文件解析
5.7.2 CDib类
5.7.3 SHowDIB演示程序
5.8 双重缓冲
5.9 小结
第六章 MFC异常的处理
6.1 C++的异常处理与SEH的比较
6.2 异常处理的语法
6.2.1 抛出异常处理
6.2.2 接收异常
6.3 异常处理与返回代码的比较
6.3.1 处理错误条件
6.3.2 在正确的环境中处理错误
6.3.3 改善代码的可读性
6.3.4 从构造函数中抛出异常
6.4 CException类
6.4.1 创建与删除CException对象
6.4.2 从CException对象中检索错误信息
6.4.3 接收多种异常类型
6.5 定义CException的派生类
6.5.1 了解CFileCException类
6.5.2 定义读者自己的CException派生类
6.6 高级的异常处理技巧
6.6.1 确定哪一个函数应接收异常
6.6.2 确定何种代码应补放置在try块中
6.6.3 确定何种代码应被放置在catch块中
6.6.4 从虚函数中抛出异常
6.7 小结
第七章 对话框和控件
7.1 对话框和控件——一个简短的描述
7.2 使用资源编辑器
7.2.1 创建一个基于对话框的应用程序
7.2.2 使用资源编辑器
7.3 使用CDialog和MFC控件类编辑
7.3.1 CDialog类——简述
7.3.2 MFC控件类
7.3.3 对话框数据交换(DDX)
7.3.4 消息处理
7.3.5 综合
7.4 序列化对话框数据
7.4.1 为CProject类加入序列化
7.4.2 更新对话框来序列化CProject对象
7.5 使用模态对话框
7.5.1 生成AddKeyword对话框模板和类
7.5.2 调用对话框
7.6 非模戊对话框——Find对话框
7.6.1 生成非模态对话框
7.6.2 调用非模态对话框
7.6.3 模态和非模戊对话框间的通信
7.7 小结
第八章 属民生表和属性页
8.1 理解CPropertySheet和CPropertyPage
8.1.1 使用资源编辑器来创建属性页
8.1.2 创建CPropertyPage
8.1.3 创建并显示模态CPropertySheet
8.1.4 创建并显示非模态CPropertySheet
8.1.5 在现有的对话框中创建和显示属性表
8.2 模态属性表演示程序
8.2.1 创建演示应用程序
8.2.2 移走标准按钮
8.2.3 重定位标准按钮
8.2.4 修改标准按钮的标题
8.2.5 禁用选项卡
8.2.6 重新激活选项卡
8.2.7 动态设置CPropertyPage选项卡的标题
8.2.8 修改选项卡字体
8.2.9 使用CpropertyPage选项卡的标题
8.3 小结
第九章 数据的输入/输出
9.1 CString类
9.2 文件输入/输出和CFile类
9.2.1 使用Open()成员函数据打开文件
9.2.2 FileDemo程序
9.3 CMemFile类
9.4 CStdioFile类
9.5 串行通信的CSerial类
9.5.1 串行通信概述
9.5.2 CSerial类
9.6 Registry
9.6.1 Registry值
9.6.2 预定义Registry键
9.6.3 使用Registry键
9.6.4 HKEY_CLASSES_ROOT下的子树
9.6.5 HKEY_USERS下的子树
9.6.6 HKEY_CURRENT_USER下的子树
9.6.7 CRegistry类
9.7 小结
第十章 声音
10.1 播放录制的声音
10.1.1 CWave类概述
10.1.2 使用WindowsAPI播放.WAV文件
10.1.3 CWave类函数
10.2 WaveDemo程序
10.3 播放MIDI文件
10.3.1 什么是MIDI
10.3.2 CMidi类概述
10.4 MIDIDemo程序
10.5 CD音频
10.5.1 CCDAudio类库概述
10.6 CDPLayer程序
10.7 小结
第十一章 计时器和空闲处理
11.1 计时器
11.1.1 使用WM_TIMER设置计时器
11.1.2 设置带回调过程的计时器
11.2 Clock程序
11.3 CWinApp的OnIdle能力
11.4 OnIdleDemo程序
11.5 小结
第二部分 应用和程序结构
第十二章 文档.视图和SDI
12.1 实现文档/视图结构
12.1.1 第1步:创建应用程序的骨架
12.1.2 第2步:声明文档的数据对象
12.1.3 第3步:完成OnNewDocument()函数
12.1.4 第4步:覆盖DeleteContets()函数
12.1.5 第5步:完成Serialize()函数
12.1.6 第6步:完成OnDraw()函数
12.1.7 第7步:加入编辑代码
12.2 永久性对象
12.3 保存永久性和非永久性对象
12.4 小结
第十三章 切分窗口
13.1 切分窗口介绍
13.2 MFC的CSplitterWnd类
13.3 DynSplitter应用程序
13.3.1 分析动态切分窗口
13.3.2 动态切分和AppWizard
13.4 StatSplitter应用程序
13.4.1 分析表态切分窗口
13.4.2 表态切分和AppWizard
13.5 切分窗口和MDI
13.6 MDISplittr应用程序
13.6.1 分析MDI动态切分窗口
13.6.2 MDI动态切分和AppWizard
13.7 切分窗口和不同的视
13.8 MultViewSplitter应用程序
13.8.1 分析多视图切分窗口
13.8.2 多视图切分和AppWizard
13.9 小结
第十四章 MDI
14.1 介绍MDI应用程序
14.2 MDIdemo应用程序
14.3 子框架窗口
14.4 创建MDI应用程序
14.5 分析MDI应用程序
14.6 小结
第十五章 打印和打印预览
15.1 在Windows中打印概述
15.2 在MFC应用程序中打印文本
15.2.1 TextPrint样例应用程序
15.2.2 MFC的打印成员函数
15.3 在MFC应用程序中打印图形
15.3.1 RectPrint样例应用程序
15.3.2 在屏幕显示和打印之间调整比例
15.3.3 OnCreate()函数
15.3.4 OnDraw()函数
15.3.5 OnPreparePrinting()函数
15.4 小结
第三部分 MFC编程中的高级对话
第十六章 扩展MFC类
16.1 UI控件
16.1.1 CAutoCompleteComboBox
16.1.2 CGreyEdit
16.1.3 CUnderlineEdit
16.2 视图和对话框
16.2.1 CFormBackground
16.2.2 ClistBoxView
16.3 小结
第十七章 工具栏和状态栏
17.1 理解工具栏
17.1.1 检查MFC控件栏
17.1.2 创建工具栏
17.1.3 显示和隐藏工具栏
17.2 理解状态栏
17.2.1 创建状态栏
17.2.2 显示工具栏帮助
17.2.3 扩充状态栏
17.2.4 状态栏演示例程序
17.3 小结
第十八章 线程
18.1 区分线程
18.1.1 创建工作线程
18.1.2 线程函数
18.1.3 创建用户界面线程
18.2 挂起与继续执行
18.3 使线程休眠
18.4 终止线程
18.5 从另一个线程终止线程
18.6 探讨线程高度
18.7 检查进程优先级类
18.8 在线程中共享MFC对象
18.9 在多线程应用程序中使用C运行函数
18.10 小结
第四部分 数据库编程
第十九章 ODBC
19.1 关键概念
19.1.1 DBMS
19.1.2 SQL
19.1.3 数据源
19.2 ODBC——标准的需要
19.2.1 ODBC标准
19.2.2 ODBC的一致层(驱动程序功能)
19.2.3 ODBC的一至层(SQL语法)
19.3 ODBC——实现
19.3.1 配置ODBC
19.3.2 连接数据源
19.3.3 查询数据和数据源
19.3.4 准备和执行SQL请求
19.3.5 检索数据
19.3.6 断开与数据源的连接
19.4 一个简单的读取数据的ODBC应用程序
19.4.1 对VisualC++添加ODBC支持
19.4.2 修改ODBCDemo对话框
19.4.3 添加初始化和数据库代码
19.5 封装高级ODBC功能
19.5.1 ODBCInfo类的“多头”文件
19.5.2 创建ODBCInfo类的头文件
19.5.3 定义ODBCInfo类
19.5.4 建立ODBCInfoDLL
19.5.5 测试ODBCInfo类
19.6 小结
第二十章 MFC数据库类
20.1 MFC数据库类
20.1.1 CDatabase
20.1.2 CRecordset
20.2 一个MFC数据库类演示程序
20.3 创建VisualC++6.0项目
20.3.1 为MFC数据库类增加支持
20.3.2 为应用程序增加对话框
20.3.3 增加用来封装用户的数据的实用类
20.3.4 为UserMaster表创建CRecordset类
20.3.5 修改对敌框的头文件
20.3.6 修改对话框的实现文件
20.3.7 建立UserMaintenance应用程序
20.3.8 使用补它本身使用的CDaabase对象
20.4 参数化记录集和查询
20.4.1 创建和使用参数化记录集
20.5 建立应用程序
20.5.1 创建参数化查询
20.6 小结
第二十一章 DAO数据库编程
21.1 DAO概述
21.1.1 DAO的历史
21.1.2 DAO的分层结构
21.1.3 DAO的接口
21.2 使用MFCDAO类
21.2.1 CDaoDatabase
21.2.2 CDaoWorkspace
21.2.3 CDaoRecordset
21.2.4 使用MFCDatabase类创建维护应用程序
21.3 小结
第五部分 应用程序编程
第二十二章 使用DLL
22.1 普通的DLL
22.1.1 理解普通的DLL本质
22.1.2 动态加载DLL
22.1.3 何时动态加载DLL的例子
22.1.4 动态加载DLL的示例
22.1.5 编写Windows挂接
22.2 MFC扩展DLL
22.2.1 理解MFC扩展DLL内部
22.2.2 通过MFC扩展DLL导出类
22.2.3 AFX_EXT_CLASS的更多信息
22.2.4 使用嵌套的MFC扩展DLL
22.2.5 导出资源
22.2.6 编写在DLL中对装文档和视的示例
22.3 小结
第二十三章 用第三方库扩展应用程序
23.1 使用第三方库
23.2 简单介绍ImageObject库
23.3 可支持的图像文件格式
23.3.1 BMP文件格式
23.3.2 GIF文件格式
23.3.3 JPEG文件格式
23.3.4 PCX文件格式
23.3.5 TGA文件格式
23.3.6 TIFF文件格式
23.4 使用ImageObject库
23.4.1 用ImageObject库加载图像
23.4.2 用ImageObject库保存图像
23.4.3 用ImageObject库绘制图像
23.5 显示程序
23.6 修剪和伸展图像
23.7 CropStretch程序
23.8 改变图像的颜色深度
23.9 图像处理
23.9.1 图像处理的两个类库
23.10 ProcessImage程序
23.11 小结
第二十四章 数据加密
24.1 基本的加码技术术语
24.2 不同类型的加码技术
24.2.1 对称算法
24.2.2 替代算法示例程序
24.2.3 公有键加密技术
24.3 哈希函数
24.4 HFDemo程序
24.5 使用Microsoft的CryptoAPI
24.6 CryptDemo程序
24.7 小结
第六部分 公用对象模块编程
第二十五章 ActiveX的介绍
25.1 OLE1.0
25.2 OLE2.0
25.3 COM
25.4 ActiveX应用程序和组件
25.4.1 ActiveX容器应用程序
25.4.2 ActiveX服务器应用程序
25.4.3 ActiveX自动化应用程序
25.4.4 ActiveX控件
25.4.5 ActiveX文档
25.5 小结
第二十六章 容器和服务器
26.1 容器应用程序
26.1.1 创建容器应用程序
26.1.2 管理嵌入对象的大小和位置
26.1.3 使用鼠标来选择项
26.1.4 删除嵌入项
26.2 服务器应用程序
26.2.1 创建框架服务器应用程序
26.2.2 定制应用程序的资源
26.2.3 完成应用程序的文档类
26.2.4 完成服务器项类
26.2.5 完成视图类
26.2.6 运行服务器应用程序
26.3 小结
第二十七章 Automation和ActiveX控件
27.1 自动化服务器
27.1.1 自动化服务器应用程序
27.1.2 创建框架自动化服务器
27.1.3 定制自动化服务器的资源
27.1.4 完成自动化服务器的文档类
27.1.5 完成自动化服务器的视图类
27.1.6 定义服务器的属性和方法
27.2 自动化客户应用程序
27.2.1 创建自动化客户框架
27.2.2 定制客户应用程序的资源
27.2.3 完成客户应用程序的视衅类
27.2.4 在客户应用程序中初始化ActiveX
27.3 从客户中控制服务器
27.4 ActiveX控件
27.4.1 创建框架ActiveX控件
27.4.2 创建ActiveX控件的用户接口
27.4.3 创建属性和方法
27.4.4 响应控件的按钮
27.4.5 测式这个ActiveX控件
27.4.6 持续性属性
27.4.7 把ActiveX控件放在Web页中
27.5 小结
第二十八章 活动模板库
28.1 创建ATL控件
28.2 为项目增加COM对象
28.3 增加绘图代码
28.4 实现接口函数
28.5 从C++中使用控件
28.6 数据类型
28.6.1 转换成BSTR和从BSTR转换
28.6.2 比较BSTR
28.6.3 在调试器中查看BSTR的内容
28.7 在Web页中嵌入ActiveX控件
28.8 小结
第七部分 颁式计算
第二十九章 Internet编程
29.1 从CInternetSession开始
29.2 创建简单的Web浏览器
29.3 与FTP服务器相连
29.4 从FTP服务器检索文件
29.5 FtpDemo程序
29.6 Web自动机
29.6.1 代理
29.6.2 自动机的烦恼
29.7 Crawlers程序
29.8 自动机编写指导
29.8.1 可数据性
29.8.2 本地测试
29.8.3 不要过度占用资源
29.8.4 切记
29.9 小结
第三十章 CHtmIView
30.1 创建CHtmIView项目
30.1.1 使用CHtmIView转换项目
30.2 CHtmIView
30.3 CHtmlDemol
30.4 HTML文档信息的检索
30.5 为CHtmIView封锁和登录RUL
30.6 CHtmIViewDemo2
30.7 小结
第八部分 使用VisualStudio工具
第三十一章 使用具有C++的J++
31.1 创建J++项目
31.1.1 生成线程化的小应用程序
31.1.2 删除不必要的代码
31.1.3 在小应用程序窗口中添加绘图代码
31.1.4 小应用程序参数
31.2 Java图像
31.2.1 加载图像
31.2.2 绘制图像
31.3 使Java在Web上获得新生
31.3.1 装入应用和程序
31.3.2 编辑HTML文件
31.4 Banner小应用和程序
31.5 MakeBanner程序
31.6 小结
第三十二章 联合使用C++和VisualBasic
32.1 RegistryControlATL控件
32.2 注册VisualBasic程序
32.3 OhmsCalculator基本的Active控件
32.4 UseOhmsCalculaorC++程序
32.5 VisualBasic的图形坐标
32.6 VisualBaisc的图像控件
32.7 小结
第三十三章 编写定制AppWizard
33.1 AppWizard的内部工作
33.2 创建定制AppWizard
33.3 改变项目的缺省设置
33.3.1 创建SDIAutomationWiz演示项目
33.3.2 改变AppWizard宏
33.3.3 定义CCustomAppWiz类
33.3.4 使用宏字典
33.4 在每个About对话框包含个人信息
33.4.1 创建AboutWiz演示项目
33.4.2 添加定制对话框
33.4.3 创建自己的模板
33.4.4 改变newproj文件
33.4.5 改变AppWizard模板
33.4.6 改变CONFIRM.INF文件
33.4.7 为持久性宏使用Registry
33.5 小结
第九部分 附录
附录A CD-ROM中的内容
A.1 章节内容
A.2 编程工具
CD-ROM安装指南