说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

利用VB5开发ActiveX控件

HTML文档下载 WORD文档下载 PDF文档下载
利用VB5开发ActiveX控件

我们可以利用Visual C++ 4.0来开发自己的ActiveX控件,但是开发比较复杂。微软新发表的Visual Basic 5.0是一个极好的开发工具。过去我们使用VB4就已经觉得相当不错,新的VB5则在技术上变得更加完善,现在一般的程序员也能利用VB5开发各种ActiveX程序,包括Active.EXE,Active.DLL,Active Control以及Active Document。

一、利用VB5开发ActiveX控件的实例

假设我们要设计这样一个控件,它包含一个Label控件和一个Picture控件,但在同一时间两者只显示一个:即当Label显示时,它显示的是图像的文件名,Picture不显示;当Picture显示时,它显示的是图像的内容,Label不显示。通过鼠标的单击操作在两者之间切换。这个控件的好处是在显示包含有图像的文本文件时简洁明了,能充分地利用显示区域。

制作这个控件我们需要使用VB中的常用控件Label和Picture,要给它赋予一个Caption的属性,还要自己编制一个Click事件的过程函数。具体的开发过程如下。

1.运行VB5,在File菜单中选择New Project建立一个新的项目,这时会弹出一个New Pro ject对话框,与VB4只有一种项目类型不同的是,VB5的项目类型有很多种,在此我们选择ActiveX Control类型。

这时在Project Explorer窗口出现了一个Project1的项目,其中的User Controls中已包含有一个User Control1的控件。可以在Properties窗口里去修改User Control1的有关属性,如Name等。

为了调试的方便,我们可以在File菜单中选Add a Project,建立一个Standard Exe类型的Project和刚才的Project1一起形成一个Project Group,本文中省略相关步骤。

2.双击Project Explorer窗口中User Control1把它激活,然后从工具箱中把Label控和Picture控件添加到设计窗口当中。在进行控件设计时,Resize事件是一个相当重要的事件,它既发生在窗体设计时,也可以在程序运行时被执行,以控制控件的大小,我们把以下程序段加入到User Control1的代码窗口当中:

Private Sub UserControl-Resize()

Label1.Move 0,0, Scale Width, ScaleHeight

Picture1.Move 0,0, Scale Width, ScaleHeight

End Sub

3.然后我们要给这个ActiveX控件加一个Caption属性。打开Tools菜单,单击AddProce dure,在随后出现的对话框中设置Name为Caption,单击Property和Public项后再单击OK。

在代码窗口中加入以下有关代码:

Public Property Get Caption() As String

Caption=Label11.Caption

End Property

Public Property Let Caption(ByVal NewCaption As String)

Label1.Caption=NewCaption

PropertyChanged "Caption"

End Property

Private Sub UserControl-InitProperties()

Caption=Extender.Name

End Sub

Private Sub UserControl-ReadProperties(ProBag As PropertyBag)

Caption=PropBag.ReadProperty("Caption", Extender.Name)

Set Picture1.Picture=LoadPicture(Caption)

End Sub

Private Sub UserControl-WriteProperties(PropBag as PropertyBag)

PropBag.WriteProperty "Caption",Caption,Extender.Name

End Sub

4.有了控件的属性,下面我们就要为这个控件编写事件过程,本文的例子较为简单,只写一个Click事件过程。

先激活User Control1的代码窗口,为了避免变量名称及事件名称与其他事件过程或是子程序的名称发生冲突,我们把以下代码加入到Declarations当中去:

Option Explicit

Public Event Click()

然后选择Label1,加入以下代码:

Private Sub Label1-Click()

Label1.Visible=False

Picture1.Visible=True

RaiseEvent Click

End Sub

再选择Picture1,加入以下代码:

Private Sub Picture1-Click()

Picture1.Visible=False

Label1.Visible=True

RaiseEvent Click

End Sub

这样,我们就已经编制好了一个简单的ActiveX控件,可以在其他支持ActiveX技术的软件当中使用这个控件了。使用这个控件时,先给它赋予Caption属性,即输入图形文件的完整的文件名,它就显示这个文件名,当鼠标单击它时,它就把图形内容显示出来,以后再单击时,则依次在这两者之间切换。

  二、ActiveX控件的运用

运用ActiveX控件的第一步是编译当前的项目以生成OCX文件。打开File菜单,选择Make User Control1.ocx项,经过编译之后,在当前目录下就生成文件User Control1.ocx,为了使用的方便,我们最好把这个文件拷贝到WIN95\SYSTEM目录下。

1.ActiveX控件在VB5中的运用

我们生成的ActiveX控件可以在VB5程序设计中像其他常用控件一样使用,例如:

(1)打开File菜单,选择建立一个新的Standard.Exe类型的Project。

(2)打开Project菜单,单击Component,在随后弹出的对话框中的Control项中找到我们刚才编制的User Control1控件,选中并单击OK。

(3)在工具箱里可以看到已多了一个新的ActiveX控件,这时就可以像使用其他控件一样地使用它了。但不要忘记设置好控件的Caption属性。

2.ActiveX控件在Visual FoxPro 5.0中的运用

在VB5中编写的ActiveX控件也可以在其他支持ActiveX技术的软件当中使用。同样是微软公司产品的Visual FoxPro在其新发表的5.0版本中开始支持ActiveX技术。Visual FoxPro在数据库技术方面功能十分强大,但进行某些界面的程序设计时,不能使人感到得心应手。

利用ActiveX技术,我们可以把两者的长处结合起来,在两者之间取长补短。假如我们要在Visual FoxPro中使用刚才编制的User Control1控件,具体过程如下。

(1)在Tools菜单中选Option项。在随后弹出的对话框中,选Control项,再在其中选ActiveX Control,然后在列表框中找到我们刚才编写的User Control1控件,选中并单击OK。

(2)在File菜单中选择建立一个New From。

(3)打开Form Control Toolbox,这时一般出现的是一些常用控件,如Label, Textbox等。我们单击其中的View Classes图标,选择ActiveX Control项,就可以看到包括User Contr ol1控件在内的诸多ActiveX控件。

(4)单击User Control1控件放置在窗体设计器中,并在Properties窗口里设置好其Caption属性,就可以像使用其他常用控件那样使用我们自己编制的ActiveX控件了。 从以上实例可以看到,ActiveX技术是一项很有前途的技术。它在不同的编程语言之间架起了一座桥梁,方便了编程者,扩展了各种编程语言的开发程序的能力。
看国外巨头如何“绑架”用户? 一周消息树:5.5寸屏幕的iPhone 6概念机来袭、索契冬奥会开幕式现Bug 一周热点:美国大学生数学建模分析,Hadoop不是万能,探访雅虎数据中心 Google Play services 4.2全球推送,完全支持Chromecast! 移动周报:最快的Web开发IDE——HBuilder Google Glass是空有噱头还是实用品? 服务好“最后一公里”,高效CDN架构经验 “义军”突起,帮用户夺回大数据控制权 为安全,Google收购基于超声波密码验证技术公司SlickLogin 2014 Shenzhen Maker Faire:国内顶级创客聚会即将举行 若无创新,智能手机将是死路一条 任道远上任VMware中国研发中心总经理 Windows免费,微软方能解救PC市场 Hadoop核心架构HDFS+MapReduce+Hbase+Hive内部机理详解 将会出现iCar?苹果应该收购特斯拉的七大原因 广大程序员的福音:Bing Code Search扩展助你方便查找代码 深挖线下价值是当前婚恋交友网站获取盈利的突破点 15个最好的Bootstrap设计工具推荐 Google首席软件工程师Joshua Bloch谈如何设计一款优秀的API【附PPT】 Webix 1.5发布:一个强大的JavaScript UI组件库 四大著名风投:在我们眼中只有技术革新 美女CEO谈AWS:是香水还是毒药 国外一学生发明新计算机系统,用微芯片代替硬盘 《近匠》第12期:Yeelink——智能硬件云服务 三星Galaxy S5:home键内置指纹识别传感器、5.25寸2K屏幕 Google发布Google Glass使用守则 三星将发布新款智能手表 搭载Tizen系统抛弃Android 从Camera360 V5版本发布,看现代相机应用趋势 索契冬奥会API:赛事的数据直播 为什么开源企业的开源大旗正在褪色 尘埃落定 腾讯确认投资大众点评,获20%股份 如何在Delphi6 程序中,把数据库(BDE)连接的用户名、密码写进程序中? 汉字组成的字符串转成char[]数组,再组合起来就出现乱码 WEB控件 textbox控件的问题,我从来没有遇到过,真奇怪? 求救!在线等 向高手求救,有关java中文的问题!!! 怎样在数据库中查出本周的记录。是ACCESS数据库。为什么高手都不进来。是问题太难吗 如何将任务栏的图标隐藏? 怎么google上不去了? SQL简单问题 关于html中进行文本编辑中操作图片的问题?请各位大虾来看看结贴一定给分 哪儿有H.323的资料呀? 我是菜鸟: ReportBuilder 中明细记录的序号怎么加? 屏蔽输入的字符 求解分数排名的权数确定 如何实现海量数据数据库的快速查询?? 有谁知道TreeView的AutoSelect属性是干嘛用的?? vc60编译出错问题? 请问编写调试JavaScript用什么软件比较好? 救命啊!!!!! 和父母一直搞的不好,怎么办? 客户端连接问题 求救 VFP:event.prg不存在? 宏和内联函数有什么具体的区别 请问如何将HTML页面直接插入TWebBrowser而不通过文件存取?谢谢! 如何将任务栏的图标隐藏? SQL Server7.0我的一个表才5万条数据,用这样的SQL Select * from Diner 语句查询要几十秒钟?太慢了。 请高手指点迷津!!! 2035年9月7日新华社报道 我的IE菜单怎么变成英文的了? GetFileVersionInfoSize,GetFileVersionInfo, VerQueryValue通过他们...... 谁知道文件上传组件:w3upload ,哪里有下载? 向高手求救,有关java中文的问题!!! 请教关于信息分析的好的软件有哪些?(100分) 急!如何使JTable中的某一列中的所有单元格只能输入数字?(急需源代码!)感谢! 怎样判断数据连接? 你是一个真正的程序员吗? 串口接收二进制数据一问,高分相送 关于关机的问题 Linux gcc 一弱弱问题 关于《阳春白雪》安装的问题,急! 发现index.aspx页面的ImageButton事件无法跟踪调试 怎么google上不去了? VB当中相当于VC当中的Continue(跳出一次循环,接着进行下一次循环)的语句是什么? 请教:Jsp中一个有关日期的简单问题! 我这边有个问题,用分1000给答的好人啊。。望各位兄弟帮帮忙啊! 如何使属性页和属性单占用资源减少? 为什么有时候gets()会停都不停,不让用户输入,而有时候却正常? 串口读取二进制数据一问,高分相送 一个小VB程序 下载了Delphl5.x ADO/MTS/CoM+(李维) 是PDF格式的,不能打印,该怎么办?那里可以下载到可打印的啊? 不难,关于程序调用的问题 夏天池塘内的鱼出现浮头现象,原因是? 为什么深海里面的鱼长得那么丑? 看到定义说左右极限都存在,x才是可去间断点,为什么-1,3这两点是可去间断点?-1不是只有右极限,3只有左极限么? “OT”是啥意思拜托了各位 谢谢 初三上学年化学元素符号 什么是构成人体的主要从材料? 耽美经典语句 请问“OT”是什么意思? 化学元素符号级名称(初三)咳咳~开学第一节化学课、老师说要背元素周期还不知道是什么的、、那个给下初中所有的化学元素、、格式要 二氧化碳Co2 水H2o 镁...氧化镁...就这个格式 网络语言“BL”是什么意思 风力发电的风扇为何竖放且只两个扇叶 初三化学元素的名称和符号要求;按初三化学书的标准.最好按顺序..... 血浆的主要成分是什么 "OT"是什么意思? 请问石油钻井中,常见到测井队使用中子源,会对靠近的人有影响吗?中子源入井后,放射出来的辐射会停留在泥泥浆返出地面后,会夹带辐射对人体有影响吗?本人是名泥浆工,未婚! 胃蛋白酶可以催化下列哪种物质的消化?A猪肉 B花生 C 苹果 D饮料 为什么与外界隔绝的新挖池塘会生出鱼呢?一直有一个问题感觉非常奇怪.我们家附近前两年挖了一个小池塘.这两年回家发现池塘里好多的鱼.绝对没有人在里面放养.而且附近没有水系.老人们 在外面的池塘,自然生长的鱼, 风力发电怎样输送 新挖的池塘,水是雨水提供的,一段时间后为什么就会有鱼?鱼卵是雨水带来的吗? 补偿中子测井的简写是什么 碱石灰由什么组成的 铝制品如何自制成铝粉?如题 我现在有一个鱼塘,是天然的,所以池塘底是沙子的,我想了解一下像这样条件的鱼塘适养什么鱼合适》我现在有一个鱼塘,是天然的,所以池塘底是沙子的,我想了解一下像这样条件的鱼塘适合养 神经兴奋恢复是否仅零电位,胃蛋白酶是否都生长在酸性环境中 盛铝粉的烧杯怎样清洗 我在北方宁夏有60亩的自然鱼塘,怎样养,养什么鱼收益大,希望大家给出意见水质条件较好,面积较广. 为什么纤维素可以造纸,淀粉却不能? 一个池塘里养了一些鱼,为了估算该池塘中有多少条鱼,养鱼人第一次从池塘中捕捞一网共40条鱼,它们全被做上标记,然后放回池中,经过一段时间,等带标记的鱼完全混合于鱼群后,再第二次从池 哪里棉被绗缝机器好一些?棉被绗缝机价格贵吗?我要是购买棉被绗缝机的话,应该去哪里购买才能购买到好一些的呢? 预糊化淀粉粘度在造纸中能起到硬度吗 水性铝粉表面的有机质如何清洗我现在用上海某铝粉公司的水性1025铝粉,现在需要对铝粉进行清洗,但是苦于没有合适的清洗剂,丙酮买不到,还有什么其他的清洗剂可以清洗铝粉表面的有机质. 直线多针绗缝机可以做棉被吗 OT是什么意思 怎么清洗铝制品? 房子前头的泰山石敢挡有什么故事么? 网游中的ot是什么意思? 所有塔罗牌的英文 地层剖面图的方向怎么确定,比方说剖面图上方有个SE130, 刻意OT是什么意思 将初三的化学元素符号给我要有元素名称和符号对照 镀金一定需要电吗 2.OT是什么意思 请问“MAP ”英文缩写 电镀金与化学镀金的区别、优劣? 树状分类法和交插分类法各有何特点! 在汽车系统里MAF是什么意思? 汽车型号英语简写含义 按照树状分类法.乙醇属于什么 MAP是什么的英文缩写 塔罗牌一共多少张 名称分别是什么? 树状分类法 cs起源各类地图英文缩写及其意思 六一国际儿童节 英文版要英文的 古代生物化石是不是生物 想把温泉馆标注到百度地图和汽车导航中找谁?恩,地图涉及到国家机密,现在国内只有一家公司在测量和商用,叫四维图新,是上市公司,如果像我这样的想把公司或商铺标注到地图上,就要找他的 求有关每个塔罗牌的名称和解释因为想写有关塔罗的小说,然后我又是菜鸟,汗 夏天,有些池塘会突然变绿,水质变坏变臭,鱼类死亡,发生该现象的地区常有化肥或去污剂被排放到池塘.请设计实验,探究化肥和去污剂(如含磷洗衣粉)是否是引起池水变绿的原因,记录实验现 大自然的鱼为什么没有胀死的 请问这个极限1+和1-到底为什么会是这样的结果呢?遇到这样的情况总是很混淆.
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘