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

利用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技术是一项很有前途的技术。它在不同的编程语言之间架起了一座桥梁,方便了编程者,扩展了各种编程语言的开发程序的能力。
移动周报:“今日头条”CEO,爱冒险的技术宅 从China Daily的iPad版,看中国纸媒如何摆脱“旧情结” 天睿推出大数据探索平台:“开箱即用”的数据分析 Basho开源Riak CS,与AWS S3兼容的云存储架构 MongoDB Days北京杂记 VMware携手亿阳信通 铺垫混合服务 行业应用,移动优先:移动难七大痛点剖析 HTML5开发必备:游戏开发资源合集 老而弥坚:65岁传奇Android工程师谈开发 2013中国云计算有奖大调查,每周大奖等你拿! Google Reader之死另一个不为人知的原因 小团队谈推广:豆果、金山、微博易、面包旅行 敏捷实战:如何让团队迭代交付周期缩短一半 移动设备管理初创公司AirWatch:首轮融资2亿美元 New Relic:不等应用崩溃,实时监控你的App! Zynga力挽狂澜三步棋:移动+授权+自有网络 巧用MapReduce+HDFS,海量数据去重的五大策略 革自己的命?为带来一致体验 IE11伪装FireFox 最古老的Linux发行版Slackware以及Arch Linux齐弃MySQL JEECG v2.3 发布,基于代码生成器的智能开发框架 Mozilla将设应用工场 Firefox OS瞄准欧洲南美 Summly创始人:12岁开始编程 17岁公司卖了3000万美元 因SaaS与NoSQL,Oracle雄风不在? 那些年云计算领域的大牛们 回顾:那些被平台方封杀的第三方应用 [热帖推荐] 中国的程序员,真的“短命”吗? 聚焦HTML5移动开发 第六届英特尔杯大学生软件开发大赛开幕 虚拟化技术新星Pluribus Networks获中国VC青睐 可穿戴开发!Pebble Watchface SDK 4月发布 我想做个程序员:一位编程小白的App开发故事 Go 1.1发布,支持向后兼容 不好意思,问这个问题? 求教,关于网页的东东,急!!!!!!!!!!!!!!! 表间数据复制问题 关于远程控制的一个问题 那里有PB6.0可供免费下载? 关于 电视卡 压缩MPEG文件的问题 CComboBox为何不能下拉,属性已设为Drop List 菜鸟问题,怎样用photoshop画出的矩形有3D边框?没分了,请帮忙 急!磁盘检测出错?在线 有关限制插入操作的问题(SQL Server 2000),救急! 蓝星梦工厂的电视卡 怎样把"34444"->34444? 构造函数初级问题 求串口联网方法! 爱情和事业是不是真的水火不容不可兼得??? 窗体里的数据能不能排序呢 救急,为什么我设置的fnOpenModal参数无效? 如何修改listview中的值? 经常去联众下围棋的兄弟进来,问个问题 用jbuilder怎样把htc文件打包到web application中去? 求助高手指点:用vb实现把结果输出到已定制的word表格中 用200百分问个很菜的问题 关于超星的问题 探讨:如何把软件开发工作为我们一生的事业 ocx问题?参数传递 用200百分问个很菜的问题 请问谁能告诉我一个制作从模糊到清晰运动的源代码或地址? 改变对话框中菜单区的背景色,急 弱智问题:我修改一个打印报表的数据窗口格式,修改后的新问题是它每次打印时接着纸的最上面, IE不能打开新窗口。是什么道理? java下如何得到当前程序(application)的路径?很急!! 组件调用问题? 初学者问题, 简单!! 为什么struts的中文资料如此之少??哪位知道有哪些中文书籍?电子书最好!! 我想做一个报表之类的东西,能在网页上显示,大家给点提示,有现成的例子最好,先谢了 请教各位大大 一个关于消息映射的郁闷 如何在Remote Data Module中使用ADOCommand? 真失败...关于优化pl/sql的问题 为什么名字空间下没有ADO 如何获得一个文件的完整URL地址? 谁能详细的讲讲我不明白的例子。我开ID送1000分。我把ID给费了。一定要搞懂 Applet从html中读取参数信息????? 在win98里可上网,但为什么不能查看网络邻居的属性?(在线等!!!) 关于超星的问题 有谁知道win2003+sql2000的问题? 怎么删除表中列的DEFAULT啊??? 高手请进,将程序加为服务 关于邮件服务器 组件编写中的问题--如何显示图标 记得以前学计算机的热情很大,并且非常希望有一台计算机,可是现在机器有了,却没有了以前的热情,经典书买了一堆却都没有看,我在想到底要不 春和千树茂的下句是什么?名校上面的题目,春和千树茂 ________________ 全班都没查到,如有知道者请告诉我, 朋友,就是紫荆花错开集结后以什么样的姿态绽放?(用文中原句回答) 是那一句? 当初喜欢她,想追她,给她打了几次电话,她又不接,然后我就放弃了.现在她又会来看我.但是回去之后她也没再说什么了,也没给我打电话,我也再没给她打过电话了, 高一数学题,知道奇偶函数相加后的式子,求偶函数f(x)、g(x)分别为定义在R上的奇函数偶函数f(x)+g(x)=a^x-a^-x+2【a的x次方减a的-x次方加2】,求g(x) 求往而不可追者年也!去而不可见者亲也!的原始出处? 谁能帮我解释:女人心海底针.谁能帮我解释:女人心海底针.谁能帮我解释:女人心海底针. 细雨纷纷千树茂的后一句是什么 谢谢您的解答.谢谢了… 女人心海底针, 谁会用''借代和反语''造句?各两句,我等待着您的答案. 英语翻译The thing gone with no return,time,that is; and that the one lost with no return,understand,next of kin.这么翻贴切吗?求权威解答, 修辞的用法? 关于满足作文的素材,或者是:知足者常乐 反问、引用、借代、反语、对比、顶针的作用 南山区在深圳市属于市中心吗? 满足与不满足 作文可以写它们的区别,也可选择一个针对它写一篇文章.有人说知足者常乐,但是不满足也可以催人奋进.认为哪个对呢?字数不多,六百多,呵Thanks. 感谢您给我上个问题的回答!还有些事想问您.还是关于出国读研或者读博...工科,大二,985高校,GPA 3.3,成绩相信以后还会更好本来想直接读博,负担是不是会太重?那如果只读硕士可不可以,这样负 哪位能翻译下:热烈欢迎来自世界各地的滑雪运动员来长春参赛 谢谢啦 ESPRIT的中文名是什么?哪国的 根据相对论,电子在10*10^6V电压的电场中加速,则m= mo ,c 地球上最小的动物是什么?不知 问下ESPRIT中文名称?翻译过来中文叫什么名称?一般男装价位是多少? 第二问不会,作疯了,k 无法解释怎可报尽亲恩 你是我心中最美的人 树欲静而风不止,子欲养而亲不待也.往而不可追者,年也;去而不可得见者,亲也. 宜将剩勇追穷寇,不可沽名学霸王,具体要每个字解释清楚! 写我心中最美的女生怎么写 在《树欲静而风不止》中,从“往而不可追者,年也;去而不可得见者,亲也.”一句中能悟出怎样的道理? 往者不可留,逝者不可追的意思? 为什么鲨鱼怕橙色? 如何在百度随便搜几个词,百度出现你要找的是不是*****(你的名字)之类的, 往者不可追,来者犹可惜. 求一篇关于《知足》的作文要求:记叙、议论都可以;【不要网上找的】;要800字左右. 卧怎么组词 要多,格式随便 英语翻译最好是双语的对比版 满足话题作文 找一些清淡冷漠啥都无所谓的词语 谁知道张学友唱的女人心我喜欢着首歌,但我不会英文,谁能用中文字标出读音, 谢谢您的解答~~~~~~~~~~~~~~~~~~~~ 结合历史与现实,谈谈中国为什么要走和平发展的道路 翻译张学友的 女人心 !最好把中英都带上! 【急】如何求一束电子从静止开始经过加速电压U加速后的速度V? 我国走和平发展道路是由我国的国家利益和国家力量决定的 ,这是不是错的,为什么我只想知道是不是错的 英语翻译如题,请英语好的朋友帮帮忙!把张学友的《女人心》翻译成汉语版的如:HELLO 翻译成 :哈楼还如:Conrazon De Melao,Melao Melao Melao 苦恼手的没老,没老没老没老.就是要学着唱的 ,就是苦于 树欲静而风不止 我欲爱而她不知啊~今天还没水呢 一个原来静止的电子经过100V的电压加速后它的初动能为多少?质量改变了百分之几?相对论教材的课后题 张学友的中文翻译最好是一句中文一句英语的翻译,谢谢了~ 解释下面加点词语的不同意思 往而不可追者 年也 去而不可见者 亲也 含义是什么 用“通”字组词,意思是普通 树欲静而风不止.人依旧而爱不在这句话怎么解释? 追问风柔,雨润,花好,月圆,幸福生活日日甜!东去,似水,如烟,一年,( )到眼前!祝( )快乐,阖家幸福!          填节日 通表示没有障碍,穿得过去的意思能组什么词语 春和千树茂的下一句这是一幅春联的上联 风摆荷叶, “女人心, 含有借代的古诗把一句话说出来 Y 葡萄架,苹果园,李苦对瓜甜,风习习,雨绵绵,地北对天难 女人心海底针是什么意思? 记者称卡扎菲曾绑架强奸数十名女子并性前美国国安局长“私聊”遭“直播”日本新保密法引政治纷争 被称是修宪的默克尔批美国应顺便“骂醒”中国人日本东北地区发生7.1级地震 暂无人美电视台节目“杀中国人言论”被删 签专家:美脱口秀节目折射美国人欠债不还伊朗停丰度20%铀浓缩 伊朗政府尚未学者:美国软实力遭遇一场“9 11”俄罗斯免费医疗陷入两难境地 有效果难墨西哥一糖果厂爆炸 1死20人失踪各国领导人都钟爱什么手机?美媒体称俄外交官在美招间谍 费用俄方英媒:中国“由陆向海”战略面临三个挑港媒:中国令人垂涎又无人问津的公务员前美国国安局长“私聊”遭邻座“直播”新媒:新加坡是中国的“特殊而重要的邻俄罗斯专家:美国例外论在多极化世界难美国电视荧屏常可看到公开对中国人侮辱男子沉迷网游称是因为老婆太能干传蒙古总统将访朝 是金正恩时期首位访专家:预防被动吸烟不容小视湖北潜江15名党员干部参与“带彩”娱陇南两当:采药村民坠崖挂树枝 武警官兰州:即知即改让医院成为公共场所控烟甘肃省下月重点整治农村食药市场兰州公安机关领导下基层 每月基层工作甘南迭部:破获非法收购林木案兰州七里河将“控烟”重点放在小网吧等6月8日至14日 甘肃将开展节能宣传兰州加强反恐工作力度 将在各县区建反甘肃陇运快客公司安全生产工作经验将向兰州城关区妇联开展寻找“最美家庭”进王三运刘伟平刘建超会见国外代表团团长兰州1.1万老人将享受高龄津贴海南人大专题询问财政转移支付 监督政埃及热气球惨剧 港府善后安排妥当家属江苏宝应一化工厂爆炸致1死3伤 尚有内蒙古5月现特异气候 东居延海萎缩严云南盈江发生6.1级地震 昆明网友表湖北纠正违纪违规问题资金290多亿元内蒙古通报三起典型腐败案例 警示全区
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘