1 / 144
文档名称:

第十二章activex控件的使用和创建讲课教案.ppt

格式:ppt   大小:1,036KB   页数:144页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

第十二章activex控件的使用和创建讲课教案.ppt

上传人:nnyoung 2019/11/28 文件大小:1.01 MB

下载得到文件列表

第十二章activex控件的使用和创建讲课教案.ppt

相关文档

文档介绍

文档介绍:第十二章ActiveX控件的使用和创建近年来,软件产业已经发生了一场革命性的变化。软件的制作和打包方式已经不再是所有的应用程序都必须从源代码编译链接成一个完整的、很大的可执行代码文件,而是大多数应用程序都可以由一些较小的构件组成。这些小的构件,通常称为组件。这些组件可以用多种不同的程序语言创建,且可以具有多种不同的的形式。最为流行的组件之一便是ActiveX控件。组件不但可以作为最终软件产品提供给其他程序设计人员,而且在大型软件开发中,使用组件也是组织不同分工的程序设计人员共同完成整个软件设计开发的重要策略和方法。本章的学****目的是:掌握如何使用ActiveX控件,以便在软件开发中使用第三方提供的产品化组件和如何创建自己的ActiveX控件,以便开发产品化组件,提供给其他程序设计者。本章的主要内容包括:·什么是ActiveX控件以及它们是如何工作的。·如何在项目工作区中添加ActiveX控件。·如何在VisualC++应用程序中使用ActiveX控件。·如何调用与ActiveX控件相关联的各种方法。·如何处理由ActiveX控件激活的事件。·如何用VisualC++AppWizard建立ActiveX控件项目。·如何用ClassWizard向ActiveX控件添加属性和方法。·如何用VisualC++提供的工具测试自己的ActiveX控件。:·OLE(ObjectLinkedandEmbeded)对象连接嵌入是Microsoft基于对象的技术。该技术用于跨越进程和机器边界的数据信息和操作方法的共享。不过最初的OLE仅仅允许把不同的应用程序创建的文档组合成一个单一文档。·ponentObjectModel)组件对象模型是遵循OLE基本技术的对象模型。对象是一个对象定义的实例,该对象定义指定了该对象的数据和一个或多个作用于该对象的接口执行方法。对象的接口实现。,例如,IUnknown接口,该接口用来询问是否找到了该组件所支持的其他接口。每个接口支持一组特定的功能,例如,可以用一个接口来处理控件的可视外观,一个接口来控制控件外观如何与插入该控件的应用程序进行交互,一个接口来触发插入该控件应用程序中的事件,等等。技术之上,技术奠定了构建ActiveX对象的方式及设计ActiveX接口的方法。之上的层面、各种对象应该支持什么样的接口以及如何与不同类型的对象交互。ActiveX控件的关键技术之一是自动。所谓“自动”可描述为:·将一个应用程序中嵌入另一个应用程序。·当用户的操作涉及到被嵌入者的功能时,激活被嵌入者,并控制被嵌入者的用户接口或文档部分,同时进行被嵌入者自身的更改。·当用户将操作转移到应用程序中非嵌入程序的控制部分时,被嵌入者自行关闭(例如在word应用程序中自动嵌入Excel电子表格应用程序)。实现自动工作的关键之一是特殊(调度)接口IDispatch。ActiveX控件可以提供的所有方法有各自的唯一标识值DISPID。这些标识值被存放在用来查找特定方法的标识列表中。IDispatch接口由一个指示方法的标识列表和IDispatch接口提供的方法组成。当获取一个特定方法的DISPID之后,就可以将该方法的DISPID作为参数,通过调用IDispatch接口的方法Invoke来实现调用DISPID所标识的指定方法。下图示意性描述了IDispatch接口如何使用Invoke方法来运行ActiveX控件提供的方法,实现的ActiveX控件的自动化。DISPID1DISPID2DISPID3DISPID4DISPIDnActiveX对象IDispatchvtable客户程序IDispatch::Invoke(DISPID)Invoke(){switch(DISPID3){case1:MethodX();case2:MethodY();case3:MethodZ();…},而无论它是一个完整的应用程序或仅仅是一个ActiveX控件。任何可以包含其他被嵌入ActiveX服务器的ActiveX对象都是ActiveX容器。注意,不要把术语容器和服务器与上图中的客户程序混淆。客户程序是指调用其嵌入对象的IDispatch接口的对象。容器和服务器都相互调用对方的IDispatch接口,因此它们相互成为对方的客户程序。