《OLE和ActiveX技术》由会员分享,可在线阅读,更多相关《OLE和ActiveX技术(18页珍藏版)》请在金锄头文库上搜索。
1、27 七月 2024制作:黄传禄第8章OLE和ActiveX技术一、OLE技术1、OLE简介对象链接与嵌入(OLE)技术是支持Windows应用程序之间相互通讯的一种技术,它通过图象、图表、数据库、声音、文本等构成复合对象(也称复合文档),实现各种应用软件系统之间的复杂的数据交换。使用OLE,一个应用程序可以和其他应用程序协同,产生易于被用户操作的不同复合文档,以及通过拖放交换数据和通过OLE自动化控制其他程序的动作。27 七月 2024制作:黄传禄采用OLE技术开发的应用程序可以集成其他软件的功能,而不用重复开发相同功能。例如,你可以通过Word、Excel、Mail、MicrosoftGr
2、aph等建立起一个包含文字处理、电子报表、电子邮件和统计图形功能的综合性办公自动化系统软件。VisualBasic在OLE程序开发方面提供可视化界面,开发方便,程序员可以快速编写出功能强大的OLE应用软件。27 七月 2024制作:黄传禄使用OLE控件开发OLE应用程序在VisualBasic的工具箱右下角,可以找到OLE控件,开发时直接使用该控件就可以开发出OLE应用程序。下面,我们举例说明OLE控件的使用方法:【例8.1】在VB程序中使用Excel表格。程序设计步骤如下:(1)创建工程和窗体Form1;(2)单击工具箱中的OLE 控件,在窗体Form1上拖动鼠标设置控件的大小和位置,释放鼠
3、标后,屏幕出现“插入对象”对话框。27 七月 2024制作:黄传禄(3)在列表框中选中“MicrosoftExcel工作表”,单击“确定”按钮;(4)窗体中显示一个空白的Excel表格,在表格中输入数据。(5)单击窗体的空白区域,完成对象的创建。27 七月 2024制作:黄传禄二、嵌入对象和链接对象的区别在在WindowsWindows环境下环境下,OLE,OLE控制的对象包括两种:嵌入对象和链控制的对象包括两种:嵌入对象和链接象,两者的不同之处在于插入到接象,两者的不同之处在于插入到OLEOLE控件的对象(数据)存放控件的对象(数据)存放的位置。的位置。1 1、 嵌入对象:当嵌入一个对象时,
4、与该嵌入对象相关联的数嵌入对象:当嵌入一个对象时,与该嵌入对象相关联的数据存储在据存储在OLEOLE自定义控制项中,并可以存入文件、剪切或拷贝至自定义控制项中,并可以存入文件、剪切或拷贝至剪贴板,还可以被编辑(通过容器应用程序)。剪贴板,还可以被编辑(通过容器应用程序)。嵌嵌入入对对象象的的数数据据是是完完全全存存放放在在嵌嵌入入的的应应用用程程序序中中,在在该该应应用用程程序序中中能能完完全全控控制制数数据据,而而其其它它软软件件是是不不能能访访问问嵌嵌入入对对象象和和它它的的数据,嵌入对象只能由被嵌入应用程序独占。数据,嵌入对象只能由被嵌入应用程序独占。 2 2、 链链接接对对象象:当当链
5、链接接一一个个对对象象时时,与与这这个个链链接接的的对对象象相相关关联联的的数数据据存存储储在在创创建建该该对对象象的的应应用用程程序序中中。只只有有该该数数据据的的预预留留位位置置是是存存放放在在OLEOLE自自定定义义控控制制项项中中,数数据据本本身身并并不不存存放放在在OLEOLE自自定定义控制项中。义控制项中。 27 七月 2024制作:黄传禄链接对象则只是把对象中包含的数据的指针(地址)插入到应用程序中去,在该应用程序中可以访问链接对象的数据,但其他软件也可以访问到该对象的数据。数据作为一个独立的文件存在磁盘上,当创建链接对象时,即将对象和该文件建立了链接,修改数据后该文件的数据也就
6、进行了相应修改。该文件这时并不是由被链接的应用程序所独占,其他任何软件也可以任意访问、修改该文件。需要说明的是,一个文件可跟几个对象建立链接。也就是说,可能有几个对象同时跟一个文件建立了链接。这几个对象因此带有互连性,一个对象的变化,将会引起其它几个对象的同步性改变,修改数据只需在产生对象的某一个软件中进行,这正是编程人员在很多情况下所希望的。27 七月 2024制作:黄传禄1、在程序中创建嵌入对象和链接对象的方法:前面8.1节中我们借助“插入对象对话框”,在应用程序中没有编写任何代码就为OLE控件创建了一个嵌入对象,如果要创建链接对象的话,则只需在图8.1中选择“从文件创建”,并指定链接的文
7、档即可(选择“链接”选项)。当然,我们也可以编程来创建嵌入或链接对象。通过OLE控件的44个属性、5个方法和14个事件过程,可以实现对OLE对象的自定义控制,下面介绍一些常用的属性:AutoActivate:设置激活方式:0Mannuao:手工激活;1GetFocus:获得焦点时被激活;2DoubleClick:为缺省值,指双击时被激活;3Automatic:自动的。27 七月 2024制作:黄传禄Class:所包含的对象类型,在属性窗口中双击该属性,就会弹出所有可用的对象类型,可选择一个填入该域。DisplayType:指出OLE对象是显示对象内容还是只显示图标。HostName:Visua
8、lBasic应用名。OLETypeAllowed:OLE的对象类型:0链接,1嵌入,2链接或嵌入。SizeMode:OLE对象如何改变大小:0对象按实际大小显示,如果对象超出控制则被截断;1对象所包含的图像适合控制的大小;2控制适合对象的大小。SourceDoc:指定OLE对象要链接的文件名(包括路径)。设置好Class域后,双击该属性,就会弹出一个文件选择对话框供用户选择文件名。27 七月 2024制作:黄传禄SourceItem:生成链接对象所使用的数据元素,它弹出和上面相同的对话框供用户选择。Action:指定基本的OLE对象进行何种操作,共有14种设置方式,在设计时是不可用的,只能在程
9、序中使用。Action的14种属性取值如下:0创建嵌入(在OLE控制项中插入一个嵌入对象);1创建链接(在OLE控制项中插入一个链接对象);4拷贝一个对象至剪贴板;5从剪贴板粘贴一个对象;6从对象应用程序中更新数据;7激活一个OLE对象(用于编辑);9关闭一个OLE对象;10从OLE自定义控制中删除一个对象;11SaveToFile:用二进制I/O将对象存入一个文件;12ReadFromFile:用二进制I/O读入对象;27 七月 2024制作:黄传禄14InsertObjDialog:显显示示插插入入对对象象(Insert Object)对对话框;话框;15PasteSpecialDlg:显
10、显示示特特殊殊粘粘贴贴(Paste Special)对话框;对话框;17取得动词;取得动词;18按按OLE格式保存一个对象。格式保存一个对象。【例例8.28.2】:在在运运行行时时使使用用一一个个OLEOLE对对象象嵌嵌入入一一个个WordWord文文档档,可可以使用以下代码:以使用以下代码:Ole1.Class = Word.Document.8Ole1.Class = Word.Document.8Ole1.SourceDoc = Ole1.SourceDoc = “c:a.docc:a.doc”Ole1.Action = 0Ole1.Action = 027 七月 2024制作:黄传禄【
11、例8.3】在运行时使用一个OLE对象链接一个图片文档,可以使用以下代码:Ole1.Class = PBrushOle1.SourceDoc = c:windowsarcade.bmpOle1.Action = 127 七月 2024制作:黄传禄三、ActiveX技术ActiveX是对OLE控件技术的升级和发展,它依赖于COM(组件对象模型)技术。ActiveX是一个开放的、集成的平台,允许程序开发者、网页(Web)制作者制作可移植的应用程序和用于万维网(WorldWideWeb)的交互式内容。ActiveX既包含服务器端技术,也包含客户端技术。其主要内容是:ActiveX控件(ActiveXC
12、ontrol):用于向WEB页面 、 Windows应 用 程 序 等 支 持 ActiveX的 容 器(Container)中插入COM对象。ActiveX文档(ActiveXDocument):用于在WEBBrowser或者其它支持ActiveX的容器中浏览复合文档(非HTML文档),例如MicrosoftWord文档,MicrosoftExcel文档或者用户自定义的文档等。27 七月 2024制作:黄传禄ActiveX脚本描述(ActiveXScripting):用于从客户端或者服务器端操纵ActiveX控制和Java程序,传递数据,协调它们之间的操作。ActiveX服务器框架(Acti
13、veXServerFramework):提供了一系列针对WEB服务器应用程序设计各个方面的函数及其封装类,诸如服务器过滤器、HTML数据流控制等。27 七月 2024制作:黄传禄四、使用ActiveX控件VisualBasic提供了一些标准ActiveX控件,我们可以在程序中直接使用。这些ActiveX控件是工具箱的扩充部分,可以通过引用部件方式扩充进工具箱。除此之外,还有很多第三方软件商开发的ActiveX控件,甚至我们自己也可以开发AcitveX控件用在自己或别人的不同应用程序中,这些ActiveX控件都可以扩充进来直接使用。这样,通过ActiveX控件可以大大增加软件的复用性,对提高软件
14、开发工作效率和质量都是有非常大的好处。27 七月 2024制作:黄传禄要使用某个ActiveX控件,需要首先将该控件添加到控件箱中。方法是选择“工程”菜单下的“部件”命令,打开控件选项卡(如图8.4所示),在控件列表中显示出所有在系统中已经安装的ActiveX控件,包括VisualBasic提供的标准ActiveX控件以及其他第三方开发的ActiveX控件都显示在列表中。在控件列表中选择需要的控件,确定后该控件则扩充进工具箱,在工具箱中就可以找到新添加进来的相应ActiveX控件。27 七月 2024制作:黄传禄例:设计一各播放动画的程序(1)设计窗体及添加控件,界面如下:27 七月 2024
15、制作:黄传禄(2)代码编写与演示PrivateSubCommand1_Click()Animation1.PlayEndSubPrivateSubCommand2_Click()Animation1.StopEndSubPrivateSubForm_Load()Animation1.AutoPlay=FalseAnimation1.Open(c:windowsclock.avi)EndSubPrivateSubForm_Unload(CancelAsInteger)Animation1.CloseEndSub27 七月 2024制作:黄传禄本章重要学习了OLE和ActiveX程序的开发技术,通过OLE控件实现不同应用程序之间的通讯、数据交换和协同工作ActiveX则是可以在不同的应用程序之间之间通用的控件,使用ActiveX控件可以实现VB编程能力的扩充本章小结课后习题讲解课后习题讲解