COM的概念解析课件.ppt

上传人:飞****2 文档编号:71806076 上传时间:2023-02-06 格式:PPT 页数:66 大小:779KB
返回 下载 相关 举报
COM的概念解析课件.ppt_第1页
第1页 / 共66页
COM的概念解析课件.ppt_第2页
第2页 / 共66页
点击查看更多>>
资源描述

《COM的概念解析课件.ppt》由会员分享,可在线阅读,更多相关《COM的概念解析课件.ppt(66页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、COM 简简 介介第第1010章章1 10.1.1 COM的概念的概念 组件对象模型组件对象模型COM是是Microsoft公司的一种公司的一种技术基石,在技术基石,在Microsoft公司的公司的MSDN中是这样中是这样定义的:定义的:“COM是软件组件互相通信的一种方式,是软件组件互相通信的一种方式,它是一种二进制和网络标准,允许任意两个组它是一种二进制和网络标准,允许任意两个组件互相通信,而不管它们在什么计算机上运行件互相通信,而不管它们在什么计算机上运行(只要计算机是相连的),不管计算机运行的(只要计算机是相连的),不管计算机运行的什么操作系统(只要该操作系统支持什么操作系统(只要该操

2、作系统支持COM),),也不管该组件机是用什么语言编写的。也不管该组件机是用什么语言编写的。”2 COMCOM是基于客户是基于客户/服务器模型的,每个服务器模型的,每个COMCOM对对象的工作方式类似于服务器,可接收收和处理来象的工作方式类似于服务器,可接收收和处理来自客户程序的请求,并产生自动回复信息。自客户程序的请求,并产生自动回复信息。COMCOM对象和客户程序对象和客户程序客户程序客户程序COMCOM对象对象请求请求响应响应3通常编写程序,首先要编写源代码,再将这些源通常编写程序,首先要编写源代码,再将这些源代码编译成目标码。这样做会有两个不便之处:代码编译成目标码。这样做会有两个不便

3、之处:1.如果有多个程序,而它们多数模块的功能相同,如果有多个程序,而它们多数模块的功能相同,仅有部分模块功能不同,那么每个程序都要重仅有部分模块功能不同,那么每个程序都要重新写源代码,重新编译。而已编写好的,功能新写源代码,重新编译。而已编写好的,功能相同的程序不能被直接使用。相同的程序不能被直接使用。2.不同语言编写的程序,由于源代码不同,因此不同语言编写的程序,由于源代码不同,因此不能互相调用,例如用不能互相调用,例如用VB编写的程序,不能编写的程序,不能调用其它语言编写的程序,也不能把其它语言调用其它语言编写的程序,也不能把其它语言编写的源代码直接拷贝的编写的源代码直接拷贝的VB程序中

4、。程序中。4 采用采用COMCOM模型可以提高软件的重复利模型可以提高软件的重复利用率和共享程度。随着应用的发展,程用率和共享程度。随着应用的发展,程序越来越大,编写程序越来越复杂,可序越来越大,编写程序越来越复杂,可以让一些模块更加通用,把别人编译好以让一些模块更加通用,把别人编译好的软件直接的软件直接“嵌入嵌入”到自己的软件中,到自己的软件中,这样使得在开发大型软件时效率大大提这样使得在开发大型软件时效率大大提高。高。5 10.1.2 COM10.1.2 COM对象的类型对象的类型 COMCOM对象是通过一系列标准接口与外部程序对象是通过一系列标准接口与外部程序进行数据交换的。接口是进行数

5、据交换的。接口是COMCOM对象和调用程序之间对象和调用程序之间订立的协议,它指明订立的协议,它指明COMCOM对象和数据程序交换所使对象和数据程序交换所使用的方法、属性和事件。一般来说,用的方法、属性和事件。一般来说,COMCOM对象有两对象有两种类型接口:即标准接口和用户接口。种类型接口:即标准接口和用户接口。标准接口标准接口是是MicrosoftMicrosoft公司定义的接口,可以公司定义的接口,可以在编写的程序中通过标准接口访问有关的在编写的程序中通过标准接口访问有关的COMCOM对象,对象,这种接口含有或执行各种与这种接口含有或执行各种与COMCOM有关的作业。编写有关的作业。编写

6、人员也可以根据需要,设计自己的人员也可以根据需要,设计自己的COMCOM对象接口,对象接口,这就是这就是用户接口用户接口。6作业作业4 二、填空题二、填空题4.COM对象有两种类型接口,即对象有两种类型接口,即 和和 。答案:标准接口答案:标准接口 用户接口用户接口7 10.1.3 10.1.3 ActivexActivex与与COMCOM的关系的关系 MicrosoftMicrosoft的的ActiveXActiveX技术是遵循技术是遵循COMCOM规程的,或者说是规程的,或者说是COMCOM理论的具体化。因理论的具体化。因此此ActiveXActiveX和和COMCOM的关系可以简单描述如

7、下:的关系可以简单描述如下:ActiveXActiveX是是建立在建立在COMCOM基础上的,它采用简基础上的,它采用简化之后的化之后的OLEOLE技术(对象链接与嵌入),技术(对象链接与嵌入),并使并使OLEOLE随时处于激活(随时处于激活(ActiveActive)状态,状态,以处理信息。以处理信息。8 10.2 ActiveX简介简介 10.2.1 ActiveX模型模型 ActiveX模型包括:模型包括:ActiveX控件控件 ActiveX脚本脚本 ActiveX文档文档 ActiveX服务器框架服务器框架 ActiveX会议会议 Java虚拟机虚拟机9 1.Activex控件控件

8、ActiveX控控件件是是一一个个提提供供特特定定功功能能的的二二进进制制对对象象。程程序序开开发发人人员员可可以以把把ActiveX控控件件添添加加到到自自己己编编写写的的程程序序中中。ActiveX控控件件可可以以用用于于各各种种语语言言环环境境中中,也也可可以以用用于于Web网网页页中中。ActiveX控控件件是是一一种种开开放放结结构构式式的的对对象象引引用用技技术术,它它不不是是某某个个特特定定对对象象的的语语言言产产物物,编编程程人人员员可可以以通通过过VB(企企业业版版)、Visual C+、Borland C+以以及及Delphi等等多多种种语语言言来建立来建立ActiveX控

9、件控件10 2.ActiveX脚本处理脚本处理 ActiveX脚脚本本处处理理在在诸诸如如VBScript、JavaScript这这样样的的脚脚本本语语言言中中配配合合使使用用ActiveX控控件件的的处处理理过过程程。通通过过使使用用脚脚本本语语言言,可可以以使使程程序序更更具具交交互互能能力。力。11 3.ActiveX文档文档 ActiveX文文档档是是一一种种ActiveX表表示示法法的的非非HTML文文档档。如如同同Word,Excel建建立立的的Microsoft Office文文档档一一样样,通通过过使使用用ActiveX文文档档,可可以以将将一一个个Microsoft Offi

10、ce文文档档加加入入一一个个Web应应用用程程序序中中,然然后后通过制定的浏览器来使用。通过制定的浏览器来使用。12 10.2.2 ActiveX控件控件 1.ActiveX控件控件 VB中中的的控控件件分分两两种种,即即内内部部控控件件(标标准准控控件件)和和ActiveX控控件件。ActiveX控控件件是是扩扩展展名名为为.Ocx的的控控件件,通通常常存存放放在在Windows的的System目目录录下下。可可以以通通过过VB集集成成环环境境的的“工工程程部部件件”菜菜单单添添加加到到工工具具箱箱中中,或或从从工工具具箱箱取取消消。内内部部控控件件是是VB工工具具箱中箱中“常驻常驻”控件,

11、始终出现在工具箱中。控件,始终出现在工具箱中。13把所需的把所需的ActiveXActiveX控件加到工具箱中的步骤:控件加到工具箱中的步骤:(1 1)执执行行“工工程程”菜菜单单中中的的“部部件件”命命令令,显显示示“部件部件”对话框;对话框;(2 2)在在该该对对话话框框中中选选择择“控控件件”选选项项卡卡,显显示示ActiveXActiveX控件的列表;控件的列表;(3 3)在列表框中找到需要添加的控件名称;)在列表框中找到需要添加的控件名称;(4 4)单击控件名称左侧的复选框;)单击控件名称左侧的复选框;(5 5)重重复复上上述述步步骤骤,选选择择其其它它需需要要加加到到工工具具箱箱中

12、的控件;中的控件;(6 6)单击)单击“确定确定”按钮。按钮。142.2.可插入对象可插入对象可可插插入入对对象象也也是是一一种种ActiveX控控件件,只只是是插插入入的的对对象象本本身身就就是是一一个个应应用用程程序序。执执行行“工工程程”菜菜单单中中的的“部部件件”命命令令,打打开开“部部件件”对对话话框框。然后选择然后选择“可插入对象可插入对象”选项卡。(演示)选项卡。(演示)由由于于可可插插入入对对象象也也是是一一种种ActiveX控控件件,因因此此也也可可以以把把它它们们加加的的工工具具箱箱中中,并并像像使使用用普普通通控控件件一样使用工具箱中的可插入对象。一样使用工具箱中的可插入

13、对象。15可插入对象的使用方法可插入对象的使用方法例:在例:在VBVB中使用中使用Microsoft WordMicrosoft Word可插入对象可插入对象(1 1)首先新建一个工程,工程类型选择)首先新建一个工程,工程类型选择“标准标准EXE”EXE”;(2 2)在)在VBVB工具箱中加入工具箱中加入“Microsoft WordMicrosoft Word文档文档”;(3 3)单单击击工工具具箱箱中中的的WordWord图图标标,然然后后在在窗窗体体上上画画一一个个框框,该该框中将显示框中将显示WordWord的编辑窗口;的编辑窗口;(4 4)在在此此窗窗口口中中,像像在在WordWor

14、d环环境境下下一一样样,输输入入文文字字,并并按按照照自己的要求进行编辑,调整格式。自己的要求进行编辑,调整格式。(5 5)完完成成文文档档的的编编辑辑后后,单单击击窗窗体体上上的的空空白白处处,WordWord文文档档环环境境消消失失,所所输输入入的的文文字字出出现现在在窗窗体体上上。运运行行程程序序,可可以以显显示刚才输入的文档。示刚才输入的文档。(6 6)若若要要对对刚刚才才的的文文档档进进行行修修改改,可可在在WordWord文文档档区区单单击击鼠鼠标标右右键键,在在弹弹出出的的快快捷捷菜菜单单中中选选择择“编编辑辑”命命令令,返返回回到到WordWord文档环境。文档环境。(演示)(

15、演示)16 10.2.3 ActiveX DLL 10.2.3 ActiveX DLL 和和ActiveX EXEActiveX EXE组件组件 ActiveX ActiveX DLL DLL 和和 ActiveX ActiveX EXE EXE 组组件件就就是是具具有有ActiveXActiveX机机制制的的动动态态链链接接库库(DLLDLL)和和EXEEXE文文件件,文文件件后后缀缀分分别别是是 .DLL.DLL 和和 .EXE.EXE,是是一一种种特特殊殊的的动动态态链接库和可执行文件。链接库和可执行文件。1.ActiveX DLL1.ActiveX DLL组件组件 ActiveX Ac

16、tiveX DLLDLL组组件件属属于于进进程程内内组组件件,它它与与调调用用它它的的应应用用程程序序在在同同一一个个进进程程中中,因因而而可可以以快快速速地地访访问问对对象象的的操操作作。但但是是进进程程内内组组件件必必须须使使用用应应用用程程序序的的执执行行线线程程。使使用用的的ActiveXActiveX控控件件(.OcxOcx)也也属属于于进进程程内内组组件件。进进程程内内调调用用组组件件的的原原理理如如下下页页图图所所示示。应应用用程程序序的的调调用用函函数数必必须须等等待待ActiveX ActiveX DLLDLL组件运行完成后,才能执行下一语句。组件运行完成后,才能执行下一语句

17、。17调用调用返回返回ActiveX DLL ActiveX DLL 组件组件程程序序进进程程等等待待程程序序进进程程18 2.ActiveX EXE 2.ActiveX EXE 组件组件 ActiveX ActiveX EXE EXE 组组件件属属于于进进程程外外组组件件,它它与与调调用用它它的的应应用用程程序序运运行行在在不不同同的的进进程程,ActiveX ActiveX EXEEXE组组件件与与应应用用程程序序的的数数据据交交换换是是通通过过进进程程间间的的通通信信来来实实现现的的。进进程程外外组组件件调调用用的的原原理理如如下下页页图图所所示示。应应用用程程序序不不需需要要等等待待A

18、ctiveX ActiveX EXE EXE 组组件件返返回回,就就可可以以立立即即执执行行下下一一语语句句。所所以以ActiveX ActiveX EXE EXE 组组件件,可以编写需要异步执行的程序。可以编写需要异步执行的程序。19调用调用返回返回ActiveX EXE ActiveX EXE 组件组件程程序序进进程程程程序序进进程程20作业作业4 二、填空题二、填空题5.ActiveX EXE文件的后缀是文件的后缀是 。答案:答案:EXE21 10.3 10.3 ActivexActivex EXE EXE 组件编程组件编程 ActiveX ActiveX EXE EXE 组组件件是是运

19、运行行于于进进程程外外的的组组件件,它它可可以在自己的地址空间运行。以在自己的地址空间运行。在在实实际际开开发发中中,有有时时会会遇遇到到比比较较费费时时、占占用用计计算算机机资资源源较较多多的的工工作作,如如大大量量的的数数据据计计算算、数数据据库库查查询询操操作作等等,或或者者对对计计算算机机实实时时型型要要求求很很高高的的工工作作,如如数数据据通通信信程程序序。在在这这种种情情况况下下,最最好好采采用用异异步步执执行行方方法法,减减少少主主程程序序的的等等待待时时间间,即即采采用用ActiveX ActiveX EXE EXE 组件技术实现多进程编程。组件技术实现多进程编程。Active

20、X EXE ActiveX EXE 编程方法分两步:编程方法分两步:1.1.建立建立ActiveX EXE ActiveX EXE 组件;组件;2.2.建立建立ActiveX EXE ActiveX EXE 组件应用程序。组件应用程序。22以下了解以下了解2310.3.1 10.3.1 建立建立ActiveX EXE ActiveX EXE 组件组件建建立立ActiveX ActiveX EXE EXE 组组件件,必必须须定定义义类类模模块块,并并在在类类模模块块中中给给出出组件的调用接口组件的调用接口,即类的属性、方法和事件。具体方法如下:即类的属性、方法和事件。具体方法如下:第第1 1步:

21、启动步:启动VBVB并创建一个新的并创建一个新的工程,在新建工程对话框中。工程,在新建工程对话框中。选择选择“ActiveX EXE”ActiveX EXE”图标,打开图标,打开一个类模块窗口。一个类模块窗口。第第2 2步:选中该类模块,在属性步:选中该类模块,在属性窗口中,将类的名称设置为窗口中,将类的名称设置为CountclsCountcls,InstancingInstancing属性保存属性保存默认设置默认设置55MultiUseMultiUse。(右。(右图)图)第第3 3步:保存工程和类模块。步:保存工程和类模块。第第4 4步:根据需要编写类模块代码。步:根据需要编写类模块代码。2

22、4类模块一般是作为单独文件保存的。它的扩展名类模块一般是作为单独文件保存的。它的扩展名为为 .clscls。在类模块编写代码时,与普通标准在类模块编写代码时,与普通标准模块程序编写方法基本相同。不同之处是:模块程序编写方法基本相同。不同之处是:(1 1)InitializeInitialize和和TerminateTerminate事件。事件。类模块中存在两个事件:类模块中存在两个事件:InitializeInitialize和和TerminateTerminate事件。事件。InitializeInitialize事件执行类的初事件执行类的初始化操作,可以在这个事件函数中对类的属性始化操作,

23、可以在这个事件函数中对类的属性值以及一些变量赋初值。值以及一些变量赋初值。TerminateTerminate事件执行事件执行类的终止操作,例如释放一些变量等。类的终止操作,例如释放一些变量等。25(2 2)类属性过程)类属性过程类属性过程比较复杂,编程比较麻烦,但是类属性过程比较复杂,编程比较麻烦,但是VBVB提提供了一个外接程序,即类生成器实用工具,可供了一个外接程序,即类生成器实用工具,可以借助该工具编写类模块的接口程序。以借助该工具编写类模块的接口程序。例如,我们可在例如,我们可在CountPrjCountPrj工程中编写以下工程中编写以下FuctionFuction过程,实现两个整数

24、的求和运算:过程,实现两个整数的求和运算:Function PlusFunction Plus(x As Integerx As Integer,y As Integery As Integer)As As IntegerInteger Plus=x+y Plus=x+yEnd FunctionEnd Function26第第5 5步:在步:在“工程工程”菜单中选择菜单中选择“工程属性工程属性”,打开,打开“工工程属性程属性”对话框,将工程名称设置为对话框,将工程名称设置为CountPrjCountPrj,其它其它选项设置为默认值。选项设置为默认值。第第6 6步:保存工程并编译生成步:保存工程

25、并编译生成EXEEXE文件。由于该工程是一文件。由于该工程是一个个ActiveXActiveX组件工程,所以它虽然是一个组件工程,所以它虽然是一个EXEEXE文件,但文件,但是不能独立运行,只能在其它新建的程序中调用该组是不能独立运行,只能在其它新建的程序中调用该组件。件。2710.3.2 ActiveX EXE 组件应用程序组件应用程序ActiveX EXEActiveX EXE组件需要通过应用程序来调用。组件需要通过应用程序来调用。在组件中创建了若干类。为了调用这些类,在组件中创建了若干类。为了调用这些类,必须建立类的实例。必须建立类的实例。在应用程序中建立在应用程序中建立ActiveX

26、EXEActiveX EXE组件的引用实组件的引用实例的步骤:例的步骤:第第1 1步:启动步:启动VBVB创建一个新工程,在创建一个新工程,在“新建工新建工程程”对话框中选择对话框中选择“标准标准EXE”EXE”,单击单击“确确定定”按钮。按钮。第第2 2步;选择步;选择“工程工程”菜单中的菜单中的“引用引用”项,项,打开打开“引用引用”对话框,在可引用列表框中,对话框,在可引用列表框中,选择需要引用的选择需要引用的ActiveX EXEActiveX EXE程序,然后单程序,然后单击击“确定确定”按钮。按钮。2829第第3 3步:创建类的对象步:创建类的对象若要使用某个类,只有创建类的对象后

27、,才能使用类的一些方若要使用某个类,只有创建类的对象后,才能使用类的一些方法,其语法格式如下:法,其语法格式如下:Dim Dim As As 声明对象类型声明对象类型 Set Set =New =New 创建对象创建对象 也可以用以下语法格式声明并创建对象:也可以用以下语法格式声明并创建对象:Dim Dim As New As New 例如,为了使用上面类中的例如,为了使用上面类中的PlusPlus过程,需要编写代码如下:过程,需要编写代码如下:Private Sub Command1_Klick()Private Sub Command1_Klick()Dim Dim MyClsMyCls

28、As New As New CountClsCountCls Text1.Text=MyCls.Plus(10,10)Text1.Text=MyCls.Plus(10,10)End Sub End Sub 30第第4 4步:当我们不需要对象时,应该释放此对步:当我们不需要对象时,应该释放此对象,免得它一直占用资源。释放对象的语法象,免得它一直占用资源。释放对象的语法是:是:Set Set =Nothing=Nothing执行这条语句后,该对象就释放掉了,不再占执行这条语句后,该对象就释放掉了,不再占用内存资源。用内存资源。3110.4 ActiveX DLL 10.4 ActiveX DLL

29、组件编程组件编程ActiveX DLLActiveX DLL组件的建立与使用方法与组件的建立与使用方法与ActiveX EXE ActiveX EXE 组件是类似的。组件和使用组件是类似的。组件和使用ActiveX DLL ActiveX DLL 组件的一组件的一般实现操作步骤是:般实现操作步骤是:(1 1)用)用VBVB设计组件所需要的窗体;设计组件所需要的窗体;(2 2)设计类的接口,定义类的属性、方法及事件;)设计类的接口,定义类的属性、方法及事件;(3 3)编译为动套链接库()编译为动套链接库(DLLDLL),),并对编译好的组件并对编译好的组件进行调试;进行调试;(4 4)建立应用程

30、序工程,在应用程序中引用组件对)建立应用程序工程,在应用程序中引用组件对象。象。32 10.4.1 建立建立DLL 组件组件 要建立要建立ActiveX DLL组件可按如下步骤操作:组件可按如下步骤操作:1.新新建建一一个个工工程程,在在“新新建建工工程程”对对话话框框中中选选择择“Activex DLL”图图标标,VB将将自自动动在在工工程程中中添添加加一一个类模块个类模块Class1。2.根根据据需需要要,在在工工程程中中添添加加组组件件的的界界面面窗窗体体,并并设设计计该界面。该界面。3.对对类类模模块块编编程程。可可以以借借助助VB的的类类生生成成器器实实用用根根据据编写类的属性、事件

31、和方法。编写类的属性、事件和方法。3310.4.2 10.4.2 编写编写ActiveX DLLActiveX DLL组件应用程序组件应用程序建建立立ActiveX ActiveX DLLDLL组组件件应应用用程程序序需需要要新新建建一一个个VBVB工工程程,工工程程类类型型为为“标标准准EXE”EXE”。然然后后按按下下面面步步骤骤编写应用程序:编写应用程序:1.1.打打开开“工工程程”菜菜单单,选选择择“引引用用”,在在引引用用的的列表框中现在前面建立的列表框中现在前面建立的ActiveX DLLActiveX DLL文件;文件;2.2.设设计计应应用用程程序序界界面面的的代代码码,在在代

32、代码码中中,要要创创建建ActiveX ActiveX DLLDLL中中类类的的对对象象,并并编编写写相相应应的的事事件件程程序。序。最后运行程序完成程序设计工作。最后运行程序完成程序设计工作。34 10.5 ActiveX 10.5 ActiveX 控件(控件(OCXOCX控件)编程控件)编程 10.5.1 10.5.1 用用ActiveXActiveX控件接口向导建立控件接口向导建立ActiveXActiveX控件控件 VBVB提提供供了了ActiveXActiveX控控件件创创建建向向导导程程序序:ActiveXActiveX控控件件接接口口向向导导。可可通通过过VBVB集集成成开开发发

33、环环境境的的“外外接接程程序序”菜菜单单加加载载并并运运行行该该程程序序。借借助助它它可可以以方方便便地地创创建建ActiveXActiveX控件接口。控件接口。当当然然,在在使使用用ActiveXActiveX控控件件接接口口向向导导之之前前,一一定定要要对对创创建建的的控控件件进进行行设设计计,确确认认需需要要哪哪些些属属性性和和方方法,提供哪些事件。法,提供哪些事件。35实例:使用实例:使用ActiveX接口向导建立接口向导建立ActiveX控件的方法步骤:控件的方法步骤:第第1步:启动步:启动VB并新建一个工程,工程类型选择并新建一个工程,工程类型选择“ActiveX控件控件”。VB自

34、动把一个名为自动把一个名为UserControl(用户控件)用户控件)的设计器添加到工程中,该设计器实际上相的设计器添加到工程中,该设计器实际上相当于一个窗体,因此也称用户控件窗体。当于一个窗体,因此也称用户控件窗体。3637第第2步:在用户控件设计器窗体上,根据需步:在用户控件设计器窗体上,根据需要设计自己的界面。要设计自己的界面。第第3步:在步:在“外接程序外接程序”菜单中选择菜单中选择“外接外接程序管理器程序管理器”。在出现的。在出现的“外接程序管外接程序管理器理器”对话框后,在此对话框中选择对话框后,在此对话框中选择“VB 6 ActiveX控件接口向导控件接口向导”,并且,并且选择选

35、择“加载加载/卸载卸载”复选框,然后单击复选框,然后单击“确定确定”按钮。按钮。3839第第4步:选择步:选择“外接程序外接程序”菜单中的菜单中的“ActiveX控件接口向导控件接口向导”,将出现,将出现下页所示的对话框。下页所示的对话框。4041第第5步:单击步:单击“下一步下一步”按钮,显示按钮,显示“选选定接口成员定接口成员”对话框,对话框中标准属对话框,对话框中标准属性、事件和方法基本不用作太多的选择,性、事件和方法基本不用作太多的选择,使用,默认的参数就可以了。对话框如使用,默认的参数就可以了。对话框如下页图所示。下页图所示。4243第第6步:单击步:单击“下一步下一步”按钮,显示按

36、钮,显示“创创建自定义接口成员建自定义接口成员”对话框。如下页图对话框。如下页图所示。可以在该对话框中建立用户控件所示。可以在该对话框中建立用户控件所需要的属性。所需要的属性。4445第第7步:单击步:单击“新建新建”按钮,打开按钮,打开“添加自添加自定义成员定义成员”对话框,在该对话框中输入对话框,在该对话框中输入属性名称,并且选择属性名称,并且选择“”类型类型“,如下,如下页图所示。然后单击页图所示。然后单击”确定确定“按钮,返按钮,返回回”创建自定义接口成员创建自定义接口成员“对话框。对话框。4647第第8步:单击步:单击“下一步下一步”,显示,显示“设计映射设计映射”对话框,如下页图所

37、示。利用这个对对话框,如下页图所示。利用这个对话框可以将新增加的属性映射到相应的话框可以将新增加的属性映射到相应的控件。本例中不作任何映射。控件。本例中不作任何映射。4849第第9 步:单击步:单击“下一步下一步”按钮,显示按钮,显示“设设置属性置属性”对话框,如下页图所示。我们对话框,如下页图所示。我们将将MyCaption属性的数据类型设置为属性的数据类型设置为String,缺省值设置为缺省值设置为“你好你好”。5051第第10步:单击步:单击“下一步下一步”按钮后,显示按钮后,显示“完成完成”对话框。对话框。第第11步:通过步:通过“工程工程属性属性”菜单修改工菜单修改工程名称,保存该工

38、程并编译生成程名称,保存该工程并编译生成.ocx 文文件。件。5210.5.2 利用用户控件编写应用程序利用用户控件编写应用程序为了使用上面创建的为了使用上面创建的ActiveX控件,需要按下面控件,需要按下面步骤编写程序:步骤编写程序:第第1步:新建一个步:新建一个VB工程,类型为工程,类型为“标准标准EXE”。第第2步:在步:在“工程工程”菜单中选择菜单中选择“部件部件”对话框,对话框,将前面建好的将前面建好的Activex控件加到工具箱。控件加到工具箱。第第3步:从工具箱中将用户控件加到窗体。步:从工具箱中将用户控件加到窗体。至此,我们就可以象使用其它控件一样,使用自至此,我们就可以象使

39、用其它控件一样,使用自定义的用户控件了。定义的用户控件了。53实验实验10 Activex的简单应用的简单应用一、一、ActiveX EXE 组件编程组件编程1.实验要求实验要求对于循环计数程序在普通的对于循环计数程序在普通的VB中就可以计算完成,但是中就可以计算完成,但是对于循环次数特别大的程序,程序若放在主模块中,对于循环次数特别大的程序,程序若放在主模块中,则会占用较多的则会占用较多的CPU资源,在计算过程中,会出现窗资源,在计算过程中,会出现窗口没有反应的假死机情况。若采用口没有反应的假死机情况。若采用ActiveX EXE编程编程计数,则可避免出现这种情况。计数,则可避免出现这种情况

40、。本实验按顺序使用普通方法、改进后的普通方法和本实验按顺序使用普通方法、改进后的普通方法和ActiveX EXE三种方法编写一个从三种方法编写一个从1到到1000三重计数三重计数的程序,理解这种计数的作用和开发方法。的程序,理解这种计数的作用和开发方法。54一、一、ActiveX EXE 组件编程组件编程2.实验步骤实验步骤普通方法普通方法用普通的方法编写一个从用普通的方法编写一个从1 110001000三重循环计数程序。方三重循环计数程序。方法如下:法如下:1 1)新建一个)新建一个VBVB标准标准EXEEXE工程。工程。2 2)在)在Form1Form1中加入一个中加入一个TimerTim

41、er控件、两个控件、两个LabelLabel和和两个文两个文本框。将本框。将TimerTimer控件的控件的IntervalInterval属性设置为属性设置为600600。553)编写控件的)编写控件的Timer事件的程序事件的程序Private Sub Timer1_Timer()Private Sub Timer1_Timer()Text1.Text=Format(Now(),Text1.Text=Format(Now(),hh:mm:sshh:mm:ss)End SubEnd Sub4 4)编写三重循环计数程序编写三重循环计数程序Public Function Public Funct

42、ion countLoopcountLoop()As Long()As Long Dim i As Long Dim i As Long Dim j As Long Dim j As Long Dim k As Long Dim k As Long Dim g As Long Dim g As Long k=0 k=0 For i=1 To 1000 For i=1 To 1000 For j=1 To 1000 For j=1 To 1000 For k=1 To 1000 For k=1 To 1000 g=g+1 g=g+1 Next k Next k Next j Next j Nex

43、t i Next i countLoopcountLoop=g=g End Function End Function565)编写)编写“计算计算”按钮按钮Command1_Click程序程序 Private Sub Command1_Click()Private Sub Command1_Click()Text2.Text=Text2.Text=countLoopcountLoop()()End Sub End Sub6 6)执行程序执行程序57 按程序设计逻辑,当单击按程序设计逻辑,当单击“计算计算”按钮后,按钮后,将调用循环计数函数将调用循环计数函数countLoopcountLoop,

44、并且在文本框并且在文本框Text2Text2中显示循环次数。但实际单击后,却发中显示循环次数。但实际单击后,却发现时钟不显示了,整个程序好象出现了死机现现时钟不显示了,整个程序好象出现了死机现象。此时千万不要关机或重新启动,因为这是象。此时千万不要关机或重新启动,因为这是一种假死机现象,是循环计数函数正在运行的一种假死机现象,是循环计数函数正在运行的原因,此时可按原因,此时可按Ctrl+BreakCtrl+Break键中断程序的运行。键中断程序的运行。当进行当进行1 1至至10001000的三重计数循环,循环此数为的三重计数循环,循环此数为10109 9次,这时将占用大量的次,这时将占用大量的

45、CPUCPU资源,造成上述资源,造成上述现象。现象。58方法二:普通方法改进后的程序方法二:普通方法改进后的程序普通编程方法因循环计数函数占用过多的资源,所以需要改进。若在循普通编程方法因循环计数函数占用过多的资源,所以需要改进。若在循环计数的函数中加入环计数的函数中加入 DoEventsDoEvents 语句,暂时中断当前的程序,把控语句,暂时中断当前的程序,把控制权交给制权交给WindowsWindows系统,就可避免出现假死机现象。下面是改进后系统,就可避免出现假死机现象。下面是改进后的循环计数函数:的循环计数函数:Public Function Public Function coun

46、tLoopcountLoop()As Long()As Long Dim i As Long Dim i As Long Dim j As Long Dim j As Long Dim k As Long Dim k As Long Dim g As Long Dim g As Long k=0 k=0 For i=1 To 1000 For i=1 To 1000 For j=1 To 1000 For j=1 To 1000 For k=1 To 1000 For k=1 To 1000 g=g+1 g=g+1 DoEventsDoEvents 暂时中断程序,将控制权交给暂时中断程序,将控

47、制权交给WindowsWindows系统系统 Next kNext k Next j Next j Next i Next i countLoopcountLoop=g=g End Function End Function59方法三:建立方法三:建立ActiveX EXE 组件技术方法组件技术方法除除采用采用DoEventsDoEvents语句实现多任务的工作,还有一种语句实现多任务的工作,还有一种方法,就是方法,就是ActiveX EXE ActiveX EXE 组件技术。这种方法组件技术。这种方法需分两步进行:第一步:建立需分两步进行:第一步:建立ActiveX EXE ActiveX

48、EXE 组组件;第二步,编写件;第二步,编写ActivexActivex应用程序。应用程序。第第1 1步:建立步:建立ActiveX EXE ActiveX EXE 组件组件采用采用ActiveX EXE ActiveX EXE 可以编写出多任务程序,将占用可以编写出多任务程序,将占用系统资源较多的程序放到后台执行,以提高程系统资源较多的程序放到后台执行,以提高程序的效率。对于前面的三重循环计数程序,采序的效率。对于前面的三重循环计数程序,采用用ActiveX EXE ActiveX EXE 组件编写的程序如下:组件编写的程序如下:60方法三:建立方法三:建立ActiveX EXE 组件技术方

49、法组件技术方法1 1)启动)启动VBVB,创建一个新的工程,在新建工程对话框中,选创建一个新的工程,在新建工程对话框中,选择择“ActiveX EXE”ActiveX EXE”图标,图标,VBVB将将打开一个类模块窗口。打开一个类模块窗口。61方法三:建立方法三:建立ActiveX EXE 组件技术方法组件技术方法2 2)选中该类模块窗口,在属性窗口中,将类模块的名称改)选中该类模块窗口,在属性窗口中,将类模块的名称改为为CountClsCountCls(原来为原来为Class1)Class1)。62方法三:建立方法三:建立ActiveX EXE 组件技术方法组件技术方法3 3)在工程资源管理

50、器窗口中,单击)在工程资源管理器窗口中,单击“工程工程1 1(工程(工程1 1)”,然后打开属性窗口,把名称属性改为然后打开属性窗口,把名称属性改为CountProjCountProj.4 4)保存工程和类模块,文件名为保存工程和类模块,文件名为ActivexCount.vbpActivexCount.vbp和和ClassCuont.ClsClassCuont.Cls。此时工程资源管理器如图所示。此时工程资源管理器如图所示。63方法三:建立方法三:建立ActiveX EXE 组件技术方法组件技术方法5 5)打开类模块窗口,编写代码)打开类模块窗口,编写代码。Public Function Pu

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁