Visual C++ 实践与提高--ActiveX 篇(含盘)
分類: 图书,计算机/网络,程序设计,C C++ C# VC VC++,
作者: 宇鹏,王晓峰,李云飞编著
出 版 社: 中国铁道出版社
出版时间: 2001-1-1字数:版次: 1页数: 339印刷时间:开本:印次:纸张: 胶版纸I S B N : 9787113040062包装: 平装编辑推荐
本书的主要内容分为三个部分:第一部分介绍了ActiveX技术的一些基本知识和开发ActiveX所用到的一些开发工具,并对ActiveX的基础——COM技术做了简要地介绍。第二部分详细讲解了如何使用VC++中的微软基础类库(MFC)开发ActiveX的各种组件。第三部分介绍了VC++所提供的最新ActiveX开发工具——ActiveX模板库(ATL),以及如何使用ATL开发ActiveX控件和ActiveX自动化服务器,这部分是使用开发ActiveX技术的一个提高。这些都是奖赏ActiveX程序员长期积累的开发经验,它们能使读者茅塞顿开,迅速提高编程水平。
本书条理清楚、语言简练、可读性强,适用于初学者和高级程序设计人员。
目录
第1章 ActiveX概述
1.1 ActiveX的发展历史
1.2 ActiveX、OLE和Internet
1.3 ActiveX组件的类型
1.3.1 ActiveX服务器
1.3.1.1 什么是ActiveX服务器
1.3.1.2 ActiveX服务器的分类
1.3.2 ActiveX容器
1.3.2.1 什么是ActiveX容器
1.3.2.2 ActiveX容器/服务器
1.3.3 ActiveX自动化服务器
1.3.3.1 什么是ActiveX自动化
1.3.3.2 ActiveX自动化服务器的分类
1.3.4 ActiveX自动化控制器
1.3.5 ActiveX控件
1.3.5.1 什么是ActiveX控件
1.3.5.2 ActiveX控件发展的历史
1.3.6 COM组件
1.4 选择和实现ActiveX组件的策略
1.4.1 ActiveX自动化服务器和控制器
1.4.2 ActiveX控件
1.4.3 COM对象
1.5 小结
第2章 开发ActiveX的工具
2.1 选择合适的开发工具
2.1.1 Microsoft基础类库(MFC)
2.1.2 ActiveX模板库(ATL)
2.1.3 BaseControl框架(BaseCtl)
2.1.4 建立自己的框架
2.1.5 开发工具小结
2.2 注册表和注册表编辑器
2.2.1 注册表发展的历史
2.2.1.1 统一记录在SYSTEM.INI和WIN.INI中
2.2.1.2 记录在自己的INI文件中
2.2.1.3 记录在注册表中
2.2.2 注册表的结构
2.2.2.1 注册表的结构划分及相互关系
2.2.2.2 六大根键的作用
2.2.2.3 ActiveX组件信息在注册表中的位置
2.2.3 注册表编辑器的一些基本操作
2.2.3.1 查找
2.2.3.2 创建键和键值
2.3 开发ActiveX的一些实用工具
2.3.1 MIDL编译器
2.3.2 Mktypelib编译器
2.3.3 GUIDGEN
2.3.4 注册服务器
2.3.5 OLE/COM对象浏览器
2.3.6 如何将工具加到VC++的开发环境中
2.4 小结
第3章 ActiveX的基础——COM
3.1 COM概述
3.1.1 什么是COM
3.1.2 COM技术的发展历程
3.1.3 COM结构
3.1.3.1 对象与接口
3.1.3.2 客户/服务器模型
3.1.3.3 COM库
3.1.4 COM特性
3.1.4.1 语言无关性
3.1.4.2 进程透明特性
3.1.4.3 可重用性
3.1.5 COM对象的基本知识
3.1.5.1 COM对象的标识——CLSID
3.1.5.2 COM对象与C++对象的比较
3.1.6 COM接口的特点
3.1.6.1 二进制特性
3.1.6.2 接口不变性
3.1.6.3 继承性(扩展性)
3.1.6.4 多态性
3.2 COM与ActiveX相关的技术
3.2.1 可连接对象
3.2.2 结构化存储
3.2.3 命名与绑定技术
3.2.4 统一数据传输
3.2.4.1 数据交换与传输协议的分离
3.2.4.2 剪贴板和拖—放操作
3.3 小结
第4章 使用MFC开发ActiveX服务器
4.1 ActiveX服务器功能演示
4.1.1 单独运行程序
4.1.2 在注册表中登记
4.1.3 链接和嵌入对象
4.1.3.1 什么是链接和嵌入
4.1.3.2 嵌入对象
4.1.3.3 链接对象
4.1.4 在位编辑和开放编辑
4.1.4.1 在位编辑
4.1.4.2 开放编辑
4.1.5 使用剪贴板和拖—放操作
4.1.5.1 使用剪贴板
4.1.5.2 使用拖—放操作
4.2 实现一个最简单的ActiveX服务器
4.2.1 创建一个ActiveX服务器
4.2.2 程序结构分析
4.2.2.1 基本程序框架结构
4.2.2.2 应用程序类
4.2.2.3 主窗口类
4.2.2.4 子窗口类
4.2.2.5 文件类
4.2.2.6 视图类
4.2.2.7 在位框架类
4.2.2.8 服务器对象类
4.2.2.9 应用程序资源
4.2.3 编译运行
4.3 在应用程序类中初始化ActiveX服务器
4.4 在文件类中添加对服务器的支持
4.4.1 登记剪贴极格式
4.4.2 创建或编辑嵌入对象
4.4.3 查找链接项
4.4.4 设置在位编辑窗口矩形
4.5 实现服务器对象
4.5.1 绘制对象
4.5.1.1 在文件类中实现绘制
4.5.1.2 在服务器对象类中得到文件的指针
4.5.1.3 在服务器对象类中实现绘制
4.5.2 获得对象的大小
4.5.3 获取剪贴板对象
4.6 在视图类中实现在位编辑
4.6.1 设置绘图模式
4.6.2 实现绘制操作
4.7 在视图类中实现剪贴板操作
4.7.1 复制
4.7.2 剪切
4.7.3 粘贴
4.8 在视图类中实现拖—放操作
4.8.1 登记拖—放目标对象
4.8.2 添加成员变量记录拖—放类型
4.8.3 实现拖—放
4.8.3.1 处理鼠标左键消息
4.8.3.2 重载OnDragEnter函数
4.8.3.3 重载OnDragover函数
4.8.3.4 重载OnDragLeave函数
4.8.3.5 重载OnDrog函数
4.9 小结
第5章 使用MFC开发ActiveX容器
5.1 概述
5.2 ActiveX容器功能演示
5.2.1 插入对象
5.2.2 支持链接和嵌入对象的在位编辑
5.2.3 剪贴板操作
5.2.4 编辑和更新链接
5.2.5 查看和修改对象的属性
5.2.5.1 转换对象的格式
5.2.5.2 改变对象大小
5.2.5.3 更改图标
5.2.5.4 编辑和更新链接
5.3 实现一个最简单的ActiveX容器
5.3.1 创建一个ActiveX容器
5.3.2 程序结构分析
5.3.2.1 基本程序框架结构
5.3.2.2 容器对象类
5.3.2.3 应用程序资源
5.3.3 编译运行
5.4 实现容器对象
5.4.1 记录对象的位置和大小
5.4.1.1 添加成员变量
5.4.1.2 得到对象的位置和大小
5.4.1.3 改变对象的位置
5.4.2 改变容器对象的状态
5.4.3 存取容器对象的数据
5.5 实现视图类
5.5.1 实现矩形跟踪器
5.5.1.1 什么是矩形跟踪器
5.5.1.2 实现矩形跟踪器
5.5.1.3 设置矩形跟踪器的鼠标形状
5.5.2 实现选中对象
5.5.2.1 实现命中测试
5.5.2.2 实现选中对象
5.5.3 绘制对象
5.5.4 插入一个新的对象
5.5.5 设置AxtiveX对象的输入焦点
5.5.6 改变对象的大小和位置
5.5.7 鼠标双击编辑
5.5.8 删除对象
5.6 剪贴板操作
5.6.1 复制和剪切AxtiveX对象
5.6.1.1 复制对象
5.6.1.2 剪切对象
5.6.2 粘贴AxtiveX对象
5.6.2.1 实现粘贴的基本函数
5.6.2.2 一般粘贴
5.6.2.3 粘贴链接
5.6.2.4 选择性粘贴
5.7 查看对象的属性
5.8 实现右键快捷菜单
5.9 小结
第6章 用MFC开发ActiveX 6自动化服务器
6.1 创建ActiveX自动化服务器程序框架
6.1.1 创建工程
6.1.2 分析程序代码
6.1.2.1 应用程序类
6.1.2.2 用于AxtiveX自动化服务器注册的三个函数
6.1.2.3 ActiveX类型库
6.2 实现自动化服务器
6.2.1 添加AxtiveX自动化接口类
6.2.2 添加属性和方法
6.2.2.1 什么是属性和方法
6.2.2.2 添加属性
6.2.2.3 添加方法
6.2.3 注册自动化服务器
6.3 小结
第7章 用MFC开发AxtiveX自动化控制器
7.1 创建程序框架
7.1.1 创建工程
7.1.2 分析代码
7.2 实现AxtiveX自动化控制器
7.2.1 从类型库中引入类声明
7.2.2 添加自动化接口类的对象
7.2.3 向对话框中添加控件
7.2.4 实现控制功能
7.2.5 程序演示
7.3 小结
第8章 使用MFC开发ActiveX控件
8.1 ActiveX控件概述
8.1.1 ActiveX控件的一些基本概念
8.1.1.1 AxtiveX控件
8.1.1.2 AxtiveX控件容器
8.1.1.3 事件
8.1.1.4 方法
8.1.1.5 属性
8.1.1.6 串行化
8.1.1.7 属性页
8.1.1.8 许可
8.1.2 ActiveX控件的基本组成部分
8.1.2.1 基类COleControl
8.1.2.2 事件激发函数
8.1.2.3 派遣映射表
8.2 在VC++应用程序中使用AxtiveX控件
8.2.1 创建程序框架
8.2.2 插入AxtiveX控件
8.2.2.1 将AxtiveX控件插入到工程中
8.2.2.2 插入AxtiveX控件后的变化
8.2.3 实现功能
8.2.3.1 对话框布局设计
8.2.3.2 添加控件所对应的成员变量
8.2.3.3 实现具体的功能
8.2.4 程序演示
8.3 使用MFC开发AxtiveX控件
8.3.1 创建基本的程序框架
8.3.2 代码分析
8.3.2.1 程序结构
8.3.2.2 应用程序类
8.3.2.3 AxtiveX控件类
8.3.2.4 AxtiveX控件属性页类
8.3.3 修改控件的图标
8.3.4 创建属性
8.3.4.1 添加公共属性
8.3.4.2 添加具有通知特性的属性
8.3.4.3 添加Get/Set类型的属性
8.3.5 为控件添加特殊效果
8.3.5.1 添加FlashColor属性
8.3.5.2 添加FlashColor函数
8.3.5.3 实现命中测试
8.3.5.4 响应鼠标消息
8.3.6 添加事件
8.3.6.1 添加自定义事件
8.3.6.2 激发自定义事件
8.3.7 绘制控件
8.3.8 实现属性页
8.3.8.1 添加公共属性页
8.3.8.2 实现自定义属性页
8.3.9 测试控件
8.3.9.1 插入控件
8.3.9.2 测试事件
8.3.9.3 测试自定义属性
8.3.9.4 测试公共属性
8.4 小结
第9章 使用MFC开发AxtiveX文件
9.1 AxiveX文件技术概述
9.2 使用MFC开发AxtiveX文件服务器
9.2.1 创建AxtiveX文件服务器项目
9.2.2 测试AxtiveX文件服务器
9.2.3 分析AxtiveX文件服务器程序
9.2.3.1 应用程序类结构
9.2.3.2 应用程序类
9.2.3.3 文件服务器类
9.2.3.4 在位编辑框架类
9.2.3.5 文件类
9.2.3.6 视图类
9.3 使用MFC开发AxtiveX文件容器
9.3.1 创建AxtiveX文件容器项目
9.3.2 测试AxtiveX文件容器
9.3.3 分析AxtiveX文件容器程序
9.3.3.1 应用程序类结构
9.3.3.2 文件对象类
9.3.3.3 视图类
9.4 小结
第10章 ActiveX模板库概述
10.1 概述
10.1.1 什么是ATL
10.1.2 ATL的发展历史
10.1.2.1 ATL的产生
10.1.2.2 ATL产生前的COM开发方式
10.1.3 ATL的优越性
10.1.3.1 针对性强
10.1.3.2 代码简练高效
10.1.3.3 技术先进
10.1.4 ATL的技术基础
10.1.4.1 COM技术
10.1.4.2 C++模板类技术
10.1.4.3 多继承技术
10.1.5 ATL的应用范围
10.2 ATL库简明参考
10.2.1 ATL简介
10.2.1.1 类工厂
10.2.1.2 COM模块
10.2.1.3 连接点
10.2.1.4 控件支持
10.2.1.5 数据类型
10.2.1.6 接口指针
10.2.1.7 IUnknown实现
10.2.1.8 持久性
10.2.1.9 属性和属性页
10.2.1.10 UI支持
10.2.1.11 窗口支持
10.2.2 常用ATL类介绍
10.2.2.1 CAxWindow
10.2.2.2 CComBSTR
10.2.2.3 CComClassFactory
10.2.2.4 CComCoClass
10.2.2.5 CComContainedObject
10.2.2.6 CComControl
10.2.2.7 CComDispatchDriver
10.2.2.8 CComModuleclass
10.2.2.9 CComObject
10.2.2.10 CComPtr
10.2.2.11 CComVariant
10.2.2.12 CContainedWindow
10.2.2.13 CMessageMapclass
10.2.2.14 CRegKey
10.2.2.15 CStockPropImpl
10.2.2.16 CWindow
10.2.3 常用ATL宏
10.2.3.1 COM映射宏
10.2.3.2 连接点宏
10.2.3.3 调试和错误信息报告宏
10.2.3.4 消息映射宏
10.2.3.5 对象映射宏
10.2.3.6 属性映射宏
10.2.3.7 固定属性宏
10.3 小结
第11章 使用ATL开发AxtiveX控件
11.1 开发普通AxtiveX控件
11.1.1 创建ATL项目
11.1.1.1 使用应用程序向导创建ATL框架
11.1.1.2 应用程序框架分析
11.1.2 向ATL项目添加AxtiveX控件
11.1.3 向AxiveX控件添加属性
11.1.3.1 添加属性
11.1.3.2 实现属性
11.1.4 修改AxtiveX控件的绘制代码
11.1.4.1 计算正多边形的顶点
11.1.4.2 添加绘制代码
11.1.4.3 在改变边数时更新控件
11.1.5 为AxtiveX控件添加事件
11.1.5.1 添加响应事件的方法
11.1.5.2 添加连接点接口
11.1.5.3 添加激发事件的代码
11.1.6 给AxtiveX控件添加属性页
11.1.6.1 添加属性页对象
11.1.7 测试和发布AxtiveX控件
11.1.7.1 测试事件
11.1.7.2 测试属性
11.1.7.3 测试方法
11.2 开发基于Windows标准控件的AxtiveX控件
11.2.1 基于Windows标准控件的AxtiveX控件
11.2.2 创建ATL项目
11.2.3 添加基于标准控件的AxtiveX控件
11.2.3.1 添加控件
11.2.3.2 代码分析
11.2.4 实现控件
11.2.4.1 设置控件的风格
11.2.4.2 改变控件的绘制方法
11.2.4.3 改变控件的输入特性
11.2.5 测试控件
11.2.5.1 测试输入特性
11.2.5.2 测试属性
11.3 小结
第12章 使用ATL开发ActiveX自动化服务器
12.1 创建ATL项目
12.2 实现自动化服务器
12.2.1 添加ATL对象
12.2.1.1 使用ATL Object Wizard添加ATL对象
12.2.1.2 分析新添加的ATL对象
12.2.2 添加属性
12.2.2.1 使用ATL类向导添加属性
12.2.2.2 实现属性
12.2.3 添加方法
12.2.3.1 使用ATL类向导添加方法
12.2.3.2 实现方法
12.3 使用和测试自动化服务器
12.3.1 创建应用程序框架
12.3.2 添加表格对象
12.3.2.1 包含表格类的相关文件
12.3.2.2 在视图类中添加表格数据成员
12.3.3 生成设置对话框
12.3.4 通过交互生成表格
12.3.4.1 添加鼠标消息响应函数
12.3.4.2 实现交互代码
12.3.5 绘制表格
12.3.6 运行程序
12.4 小结