vb_ocx制作

上传人:xh****66 文档编号:61654063 上传时间:2018-12-08 格式:PPT 页数:29 大小:336KB
返回 下载 相关 举报
vb_ocx制作_第1页
第1页 / 共29页
vb_ocx制作_第2页
第2页 / 共29页
vb_ocx制作_第3页
第3页 / 共29页
vb_ocx制作_第4页
第4页 / 共29页
vb_ocx制作_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《vb_ocx制作》由会员分享,可在线阅读,更多相关《vb_ocx制作(29页珍藏版)》请在金锄头文库上搜索。

1、,14.1 制作ActiveX 控件,14.2 使用其他应用程序中的对象,第14章 ActiveX 部件,退出,ActiveX部件是由ActiveX技术创建的、一个或多个对象所组成的、可以重复使用的编程代码和数据,是定义从web页面到对象链接与嵌入OLE控件的所有内容的核心术语,ActiveX技术提供了一种把所有其他使网络生动起来的技术粘合在一起的粘合剂。在VB中使用的ActiveX部件有四种:ActiveX 控件、ActiveX文档、 ActiveX DLL和ActiveX EXE。,14.1.1 ActiveX 控件的制作过程,(1)新建工程时选择新建“ActiveX 控件”,打开如图14

2、-1所示的UserControl对象的设计控件界面。,(2)在UserControl1对象上添加可能得到的各种对象。,(3)编写程序代码。,(4)参考类的创建,为控件添加属性、事件和方法。,(5)如果需要,可以为控件建立属性页。,(6)建立一个标准的EXE工程测试所建立的ActiveX 控件。,(7)编译成OCX文件发布。,14.1 制作ActiveX 控件,图14-1 ActiveX 控件的设计窗口,下面以建立一个“图片浏览器”控件为实例,说明ActiveX 控件的制作过程。 图片浏览器控件由驱动器列表框、目录列表框、文件列表框和图片框四个控件组成。 1、新建ActiveX 控件工程 单击“

3、文件”菜单中的“新建工程”,打开“新建”对话框,双击“ActiveX 控件”,弹出如图14-1所示ActiveX 控件的设计窗口。根据需要将工程名称换名,如改为“AcdSystem”,则“AcdSystem”就是在“部件”对话框中显示的新的ActiveX 控件的名称。 在“AcdSystem”工程的设计窗口有一个UserControl1对象,其功能类似于标准EXE工程的窗体,是ActiveX 控件的设计平台,可以在其中添加各种已有对象以及编写事件过程。 通过单击“工程”菜单中的“添加用户控件”可以在一个ActiveX 控件工程中制作多个ActiveX 控件,这样在生成的OCX文件中就有多个Ac

4、tiveX 控件。,表14-1 UserControl1对象的主要属性,表14-2 UserControl1对象的主要事件,2.设计ActiveX 控件界面 按图14-2设计界面,即添加四个控件:驱动器列表框Drive1、目录列表框Dir1、文件列表框File1和图片框Picture1,将UserControl1对象的Name属性设置为ACDSee,以后在其他窗体上添加该控件时,控件的默认名称将以ACDSee开头。如需要可以为UserControl1对象的ToolboxBitmap属性任意指定一个图形文件。,图14-2 “图片浏览器”控件,3.编写代码 Private Sub Drive1_C

5、hange() 当在驱动器列表框选择新的驱动器时 Dir1.Path = Drive1.Drive 目录列表框的路径改变 End Sub Private Sub Dir1_Change() 目录列表框的路径改变时 File1.Path = Dir1.Path 文件列表框的路径改变 End Sub Private Sub Combo1_Click() File1.Pattern = Trim(Right(Combo1.Text, 5) 文件类型为列表框的后5个字符 End Sub Private Sub File1_Click() Picture1.Picture = LoadPicture(F

6、ile1.Path + “ + File1.FileName) End Sub Private Sub UserControl_Initialize() File1.Pattern = “*.bmp;*.tif;*.tiff;*.jmp;*.jpg;*.jpeg;*.gif“ End Sub,4.建立测试工程 (1)单击“文件”菜单中的“新建工程”,新建一个标准EXE工程,将新建的工程改名为TextAcdPRJ。 (2)单击“工程资源管理器”中的“TextAcdPRJ”工程名称,在弹出的快捷菜单中选择“设置为启动”,将TextAcdPRJ工程设置为启动工程。参见图14-3。 (3)必须关闭Ac

7、tiveX 控件设计窗口,才能在工具箱中可以看到如图14-4所示新建的ActiveX 控件图标(右下角),这样才能在测试窗口添加该ActiveX 控件。 (4)在TextAcdPRJ工程的窗口添加ACDSee控件,可以将该控件的默认名称ACDSee1改为TestACDSee。 此时如果打开ACDSee控件的设计窗口,意味着ACDSee控件处于设计阶段,TextAcdPRJ工程的窗口将布满斜线,参见图14-5。,图14-3设置启动窗体 图14-4 ACDSee控件图标 图14-5 布满斜线的测试窗体,5.为控件添加事件 对使用ActiveX 控件的用户来说,其中的UserControl1对象和该

8、对象上的子控件的事件、属性是不可见的,而ActiveX 控件的事件和属性对用户是可见的。VB自动为ActiveX 控件提供了GotFocus、LostFocus、DragDrop、DragOver和Validate事件。另外,ActiveX 控件的设计者可以为ActiveX 控件自定义事件。以为ACDSee控件设计一个PictureDblClick事件为例(该事件在双击ACDSee对象上的图片框时发生),说明自定义事件的过程。 (1)声明事件 打开ACDSee控件的设计窗口,在代码窗口的通用声明部分加上如下声明: Event PictureDblClick() (2)在ACDSee对象上的图片

9、框双击事件过程中适当位置加上触发事件的代码: Private Sub Picture1_DblClick() 其他代码 RaiseEvent PictureDblClick End Sub 这样,关闭ACDSee控件设计窗口后,在测试窗口的TestACDSee控件的事件组合框中可以看到PictureDblClick事件,根据需要,可以在其中加上所需事件代码,如: Private Sub TestACDSee_PictureDblClick() Myanswer = MsgBox(“你想放大图片吗?“, vbYesNoCancel) End Sub,6.为控件添加属性 如为控件增加Drive属性

10、的步骤为: (1)打开ActiveX 控件设计窗口的代码窗口。 (2)单击“工具”菜单中的“添加过程”,打开“添加过程”对话框,输入属性名“Drive”,过程类型为“属性”,范围为“公有的”。 这样,VB立即提供如下两个过程模板: Public Property Get Drive() As Variant End Property Public Property Let Drive(ByVal vNewValue As Variant) End Property 在这两个过程中添加所需代码: Public Property Get Drive() As String Drive = Driv

11、e1.Drive End Property Public Property Let Drive(ByVal New_Drive As String) Drive1.Drive = New_Drive End Property 这样,就将UserControl对象子控件Drive1的Drive属性显露出来,关闭ActiveX 控件设计窗口,在属性窗口可以看到Drive属性,参见图14-6(Drive的默认值设置为“c:”。在程序运行时,在驱动器列表中选择的驱动器就是ActiveX 控件的Drive属性值。,采用类似的方法可以将UserControl对象子控件Dir1的Path属性和子控件File

12、1的FileName属性显露出来。参见图14-6(已将Path的默认值设置为“c:效果图”)。,图14-6 ActiveX 控件的属性,7.保存属性值 在UserControl对象中有三个与属性访问密切相关的事件:InitProperties事件、 ReadProperties事件和WriteProperties事件。 属性保存在称为“属性包”、类型为PropertyBag的对象中,可以通过调用“属性包”的WriteProperties方法和ReadProperties方法来保存和读取属性值。 如读取Drive、Path、FileName属性的过程代码为: Private Sub UserCo

13、ntrol_ReadProperties(PropBag As PropertyBag) Drive1.Drive = PropBag.ReadProperty(“Drive“, “c:“) Dir1.Path = PropBag.ReadProperty(“Path“, “c:效果图“) File1.FileName = PropBag.ReadProperty(“FileName“, “) End Sub 保存Drive、Path、FileName属性的过程代码为: Private Sub UserControl_WriteProperties(PropBag As PropertyBag

14、) Call PropBag.WriteProperty(“Drive“, Drive1.Drive) Call PropBag.WriteProperty(“Path“, Dir1.Path) Call PropBag.WriteProperty(“FileName“, File1.FileName) End Sub 虽然在WriteProperties事件中加上了保存属性的代码,但WriteProperties事件并不知道属性值何时发生了改变,可以调用PropertyChanged方法来通知VB控件的某个属性值发生了改变,然后通知WriteProperties事件保存新的属性值。如: Pu

15、blic Property Let Drive(ByVal New_Drive As String) Drive1.Drive = New_Drive PropertyChanged “Drive“ End Property,8.设计属性页 下面以为AcdSee控件建立MyPropertiesPage属性页为例,说明建立新属性页的步骤: (1)按照前面的介绍为AcdSee控件添加新的属性,这些属性要对应到新的属性页MyPropertiesPage中。这里不添加新的属性,只将现有属性Drive、Path对应到MyPropertiesPage属性页中。 (2)单击“工程”菜单中的“添加属性页”,打

16、开“添加属性页”对话框,可利用“VB属性页向导”方便地创建属性页,双击“VB属性页向导”打开“属性页向导”对话框。 (3)单击“下一步”按钮,当出现图14-9 所示对话框时,单击“添加”按钮,打开图14-10所示“属性页名称”对话框,输入属性页名称“MyPropertyPage”,单击“确定”按钮返回。 (4)单击“下一步”按钮,出现图14-11 所示“属性页向导-添加属性”对话框,在“可用属性”框中显示可以在新的属性页中添加的属性名称,依次双击“Drive”和“Path”,将其添加到右边的“MyPropertyPage”属性页中。 (5)单击“完成”按钮完成属性页的创建。 此时在工程资源管理器窗口可以看到新的属性页图标。关闭控件设计窗口,在测试窗口打开控件的属性页,参见图14-12。,图14-7 “连接属性页”窗口 图14-8 标准属性页,图14-9 添加属性页 图14-10 输入属性页名称,图14-11 添加属性 图14

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号