activex控件的使用和创建

activex控件的使用和创建

ID:26875338

大小:994.51 KB

页数:144页

时间:2018-11-29

activex控件的使用和创建_第1页
activex控件的使用和创建_第2页
activex控件的使用和创建_第3页
activex控件的使用和创建_第4页
activex控件的使用和创建_第5页
资源描述:

《activex控件的使用和创建》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第十二章ActiveX控件的使用和创建近年来,软件产业已经发生了一场革命性的变化。软件的制作和打包方式已经不再是所有的应用程序都必须从源代码编译链接成一个完整的、很大的可执行代码文件,而是大多数应用程序都可以由一些较小的构件组成。这些小的构件,通常称为组件。这些组件可以用多种不同的程序语言创建,且可以具有多种不同的的形式。最为流行的组件之一便是ActiveX控件。组件不但可以作为最终软件产品提供给其他程序设计人员,而且在大型软件开发中,使用组件也是组织不同分工的程序设计人员共同完成整个软件设计开发的重要策略和方法。本章的学习目的是:掌握如何使用ActiveX控件,以便在软件开

2、发中使用第三方提供的产品化组件和如何创建自己的ActiveX控件,以便开发产品化组件,提供给其他程序设计者。本章的主要内容包括:·什么是ActiveX控件以及它们是如何工作的。·如何在项目工作区中添加ActiveX控件。·如何在VisualC++应用程序中使用ActiveX控件。·如何调用与ActiveX控件相关联的各种方法。·如何处理由ActiveX控件激活的事件。·如何用VisualC++AppWizard建立ActiveX控件项目。·如何用ClassWizard向ActiveX控件添加属性和方法。·如何用VisualC++提供的工具测试自己的ActiveX控件。12.1

3、什么是ActiveX控件在介绍ActiveX控件之前有必要了解另外两个编程技术概念:·OLE(ObjectLinkedandEmbeded)对象连接嵌入是Microsoft基于对象的技术。该技术用于跨越进程和机器边界的数据信息和操作方法的共享。不过最初的OLE仅仅允许把不同的应用程序创建的文档组合成一个单一文档。·COM(ComponentObjectModel)组件对象模型是遵循OLE基本技术的对象模型。一个COM对象是一个对象定义的实例,该对象定义指定了该对象的数据和一个或多个作用于该对象的接口执行方法。客户程序与COM对象之间的相互作用只能通过COM对象的接口实现。Ac

4、tiveX控件就是一组封装在COM对象中的功能模块。这个COM对象是独立的,但并不能单独运行,而只能在ActiveX容器中运行,如VisualC++或VisualBasic应用程序,这一点很像在组合设备中插入具有特定功能的组件,例如在组合式音响中,插入一个DVD播放组件。12.1.1ActiveX和IDispatch接口每个COM对象都有一些标准接口,例如,IUnknown接口,该接口用来询问是否找到了该组件所支持的其他接口。每个接口支持一组特定的功能,例如,可以用一个接口来处理控件的可视外观,一个接口来控制控件外观如何与插入该控件的应用程序进行交互,一个接口来触发插入该控件

5、应用程序中的事件,等等。ActiveX技术是建立在微软的COM技术之上,并使用COM的接口和交互模型使ActiveX控件与插入控件的应用程序进行完全无缝的集成。COM技术奠定了构建ActiveX对象的方式及设计ActiveX接口的方法。ActiveX技术定义了建立于COM之上的层面、各种对象应该支持什么样的接口以及如何与不同类型的对象交互。ActiveX控件的关键技术之一是自动。所谓“自动”可描述为:·将一个应用程序中嵌入另一个应用程序。·当用户的操作涉及到被嵌入者的功能时,激活被嵌入者,并控制被嵌入者的用户接口或文档部分,同时进行被嵌入者自身的更改。·当用户将操作转移到应用

6、程序中非嵌入程序的控制部分时,被嵌入者自行关闭(例如在word应用程序中自动嵌入Excel电子表格应用程序)。实现自动工作的关键之一是特殊(调度)接口IDispatch。ActiveX控件可以提供的所有方法有各自的唯一标识值DISPID。这些标识值被存放在用来查找特定方法的标识列表中。IDispatch接口由一个指示方法的标识列表和IDispatch接口提供的方法组成。当获取一个特定方法的DISPID之后,就可以将该方法的DISPID作为参数,通过调用IDispatch接口的方法Invoke来实现调用DISPID所标识的指定方法。下图示意性描述了IDispatch接口如何使用

7、Invoke方法来运行ActiveX控件提供的方法,实现的ActiveX控件的自动化。DISPID1DISPID2DISPID3DISPID4DISPIDnActiveX对象IDispatchvtable客户程序IDispatch::Invoke(DISPID)Invoke(){switch(DISPID3){case1:MethodX();case2:MethodY();case3:MethodZ();…}调度接口12.1.2ActiveX容器和服务器任何可以嵌入另一对象的ActiveX对象都是Act

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。