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

利用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技术是一项很有前途的技术。它在不同的编程语言之间架起了一座桥梁,方便了编程者,扩展了各种编程语言的开发程序的能力。
榜单:十位帮我们打理数据的存储大佬 OpenStack Grizzly版发布 Comcast、CERN成为新会员 谷歌携Blink来势汹汹 WebKit将成明日黄花? 星巴克与苹果合作 顾客可免费下载付费App 微信回应信令争议 将启动2.5G网络优化计划 凤凰网CTO吴华鹏离职 先后供职长达10年 外媒:开发者每周编码时间仅19.1小时 AppGratis CEO现身说法:应用被苹果儆杀始末 一个Web设计师眼里的云计算 戴尔高管:服务器业务领先惠普五年时间 Hoodie:基于JS与CouchDB的超快速Web开发框架 设计优秀API的五大规则 盘点英特尔IDF2013第一天:技术产品新趋势 英雄组队去打怪!Nimble Quest开发团队访谈 云通讯平台打造本土Twilio 被逼无奈?传微软或明年秋发布iOS和Android版Office 欧洲各国政府将向大众开放公共数据 访联想云存储罗予晋:优化MooseFS,共建生态系统 磊友创始人赵霏:关于HTML5与Flash争执之我见 国际混乱C语言代码大赛优胜作品详解之“A clock in one line” 揭秘程序员大脑编程的七大“误区” 从Java到ObjC语言的桥梁:谷歌J2ObjC 0.7版本亮相 数据库管理系统ParElastic:打破常规 扩展云端MySQL 谷歌苹果专利纠纷意在战略无意和解 美法官为其苦恼 Facebook收购神秘移动软件创业公司Osmeta 修改驱动,使用Erlang+VoltDB实现每秒87.7万事务 横评美国IaaS“8匹狼”:AWS、GCE、Azure、Rackspace、SoftLayer、Dell、HP、Joyent 独立游戏精神释放的舞台:IGF China 2013作品火热征集中 三款热门入门级在线编程教程对比 微软modern.IE:网站兼容性测试利器 Localytics:AngularJS代替Backbone 代码减少一半 本人刚接触com,试着用书中的例子实现“白板”程序,其中有两个程序,一个是服务器端A,另一个是客户端B,在我自己机上注册了A,运行两个 如何避免sql语句'问题 上星了!:)散分200,前4位给分! Weblogic 启动后无法显示 http://127.0.0.1/console页面,是怎么回事? 如何使树形控件的内容 在 SQL 中怎麼把時間日期型的字段的值變成日期型? 急!!!求助联想G808手机的码表 写内存,紧急求救! 如何得到文件建立和修改的时间呢? 急急急:在线等待。COM的接口中的方法中参数为自定义类指针,返回一个自定义类指针,应该怎样实现? 怎样对double类型的数据定制小数位 VC处理ADO时的怪问题,高分救助----在线等!!! 为什么mysql的longblob类型数据上传超过1M就不行了? VB如何作中文输入软键盘,高分回报? win98自动启动问题 为什么mov eax, [400000h] 和mov eax 400000h汇编结果一样? 刚才的没解决 找工作, 上海。 请帮忙啊 关于在delphi中Dll的创建和调用,象登陆界面一类,dll中有窗体,求例子。 哪家网上书店信誉高,C++ builder书质量高? 关于rs.MovePrevious 100分问题:如何在sdi的view的(0,0,NULL,20)区域固定显示一定内容 VB中使用ADO连接远程数据库时的事务处理问题 在weblogic中,这个错误是怎么回事?(在线等待) 怎么用SOCKET传送一个自定义类型的数据 szbug大哥请进来拿分 幸福女人的小小要求(zt) 各位好,请问一个问题:存储过程的作用是什么,能不能举例说明一下,看了半天书,也没能明白,多谢了! 我想用循环来实现这样的语句,怎么写呢? 请问xml元素内容部分的html代码如何处理 怎样定义rect数组? 一道考试题目:考考你们自己的C++水平。 怎样用代码遍历DBGrid中的记录?急!在线等待! 为什么mov eax, [0x400000h]和mov eax 400000h汇编结果一样? 网络报表最好的解决方法是什么 高分求购web 打印控件?还有一个远程数据库,客户端打印问题帮忙解决一下 哪位高手能给一个简单的TOOLBAR控件应用的原代码?(非常需要) 哪些有钱途?哪些有前途? 讨论:MSE(软件工程)对中国目前的开发现状真的有帮助吗?来者有分 ACCESS查询语句中的DATEPART函数为什么不能执行??? php为什么安上后不能用 在VS.Net中如何使注释生成已编译的HTML帮助文件? 我想更改Win2000的开机画面,请高手指点 ADO连接数据库时的事务处理问提 对于动态生成的控件,如何确定它的名字? vb 中使用select 的问题 想把post的变量遍历,怎样实现 小问题 关于参数 如何通过一个计算机名来查出它在局域网中的IP !!!!!~~~ 急,哪里可以下载IeWebControl? 胡静自爆十足严母范儿 娇嗔"蔡依林陪妈妈过节贴心献吻 避谈与男友朱茵黄贯中女儿近照曝光 俏皮吐舌刘若英母亲节办新歌签唱会 妈妈低调现戚薇上海宣传新碟 否认李承炫示爱:开韩国十大美男排行榜 赵寅成排名第二谢霆锋庆小儿子生日三代同欢 张柏芝缺《非常完美》富二代打女嘉宾惹众怒印度贫民的特色生活贝嫂装扮时尚犹如女王 丈夫生日大方献小S晒小女儿吃手照李湘晒女儿游迪士尼照 王诗龄变身白雪郭富城两旧爱同场 熊黛林钟丽缇互称不《陆贞传奇》美女如云 美人终极盘点细数《陆贞传奇》女主角赵丽颖演过的角刘嘉玲潮装女王范儿足 不介意网络被冒马云见义勇为视频走红:对"英雄联盟新英雄暗黑之刃Aatrox技盘点2013年将为人母的欧美明星美女子臀部世界最大 堪称世界奇迹NBA篮球宝贝争相斗艳 激情热舞活力繁华落尽梁冬、袁腾飞、宋鸿兵齐上阵仁孚60年“仁孚荟”奖赏客户海纳城与阿里巴巴达成战略合作楼市+城事献血者:我们最想知道血用在哪“给荔”新思路:电商+采摘团惊艳美人鱼“游”来,疯狂庆典开始天安门金水桥暴恐案三人被判死刑内急路边方便不慎掉下河道“老师猥亵学生”何以成校方“家务事”废旧物品再利用心中所想变现实见家长龙华菜价居中 居民盼“放心菜”孕妇为夫猎艳 诱骗女孩回家杀害美报:中国制造商替足球队分享世界杯荣苹果2.5英寸显示屏SmartWat布鲁尼演唱 萨科齐捧场纯水岸推出零首付购房官员被贼惦记 还请纪检部门还官员清白黄标车限行进入倒计时
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘