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

利用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技术是一项很有前途的技术。它在不同的编程语言之间架起了一座桥梁,方便了编程者,扩展了各种编程语言的开发程序的能力。
安全漏洞影响2.5万iOS应用?AFNetworking维护者发布回应 《近匠》专访AbleCloud李海磊:IoT平台求变 腾讯、京东、微软等设计专家齐聚,探讨移动应用体验创新设计 TIOBE 2015年5月编程语言排行榜:微软系语言份额上升 《Hadoop核心技术》作者翟周伟 :我与Hadoop的不解之缘 云集百位核心专家 中国云计算大会演讲议题公布(表) 细品这杯香浓的咖啡——阿里中间件高级专家沈询的Java之旅 超图研究院院长李绍俊:创新2.0时代的平台软件研发体系 优麒麟(Ubuntu Kylin)15.04发布派对在天津成功举行 【CTO讲堂】以API为核心的移动应用云大发展时代 游戏设计的迭代误用:从半成品到概念修正 成功的社区在于拥抱变化——知乎创始人周源专访 优化UITableViewCell高度计算的那些事 国外iOS大牛:开发Apple Watch应用我犯过的错 云上Java System Profiling与Debugging——蚂蚁金服观察与实践 搜狗商业平台Java技术实践 Java在电信软件领域的技术实战 关于Java框架Vert.x的几点思考 Java在游戏服务器开发中的应用 Java框架研发思考 那些年,Java程序员用过的开发工具 Java内存模型的历史变迁 Java 8与Apache Ignite Java开发与技术挑战——关于技术的技术思考 专访唯品会架构师肖桦:做编码的架构师 越来越“简单”的Java 我的Java!越过山丘 专访沙梓社:做个“Think Different”的技术牛人 基于ES6,使用React、Webpack、Babel构建模块化JavaScript应用 财税街创始人石克清:创业须空杯心态+有效社交 自我知识管理:连贯性就是生产率 请问.......... 在数据窗口拖动垂直滚动条死机。只能ctrl+alt+del结束任务。倾听你的声音。 请教各位大虾两个Sql语句 哪里有visual studio.net下载? 那里有sql server 2000企业版下载的 xml的学习??????双儿 怎么比较两个LPTSTR字符串啊??? 语句“rs.Open sql,conn,1,1”中后边的两个数字参数是何意思? 如何获取datawindow中文本框内容? 请教公司大院网络系统设计方案要怎写?会遇到什么问题? 关于clientdataset的返回值问题 关于报表打印的问题!火急。。 这个世界上有多少C/C++程序员? 关于ARP广播域的问题????????????????、 请问什么服务器支持global.jsa 安装oracle数据库出错!!!!!!!!!!!! 如何在对话框的OnPaint()函数中得到该对话框的窗口大小? 一个看似简单却很棘手的问题,不得不请教各位。。。 哪里有将rm文件转换成avi或者mpg格式的软件? 关于ARP广播域的问题?????????????? 请问,,怎么设定mshflexgrid的属性,使其各列的宽度与数据源字段的宽度一致 请问这几个对象是否代表同一个对象? 菜鸟问题:如何跟随鼠标拉出一虚线矩形框?回复就有分! 高分寻Authorware v6.0 注册码 在数据窗口中有“部门”和“员工”两个列,分别采用各自的下拉数据窗口显示。如何使得“部门”改变时,“员工”显示与其对应的人员而不是“员工”表中所有人员。 怎样安装UNIX? 灌水加求救…… T-SQL中SELECT句中可不可以有存储过程。。。。。。。。这样为什么不行呢?(100分酬谢) MS SQL SERVER 有谁知道型号为CDU111-NE 的SONY光驱是多少速的吗? 谁对RTTTL格式文件了解,怎么把它转换成可以发送的二进制格式? 关于ORACLE存贮过程的迷惑,请各位大侠解惑! 请问如何向ActiveX控件发送一个自定义数据结构的指针 有没有好一点的ASP上传组件?? asp调用dll失败!!! 为何用了2个以上的单元有调用窗体就出现 access violat at address XXXXX in module的错误 请问有没有一些用来专门用作软件测试的测试软件? EPSONSTYLUS C20SX 型号的打印机支持NT4吗? 请问哪里有linux操作系统的源代码下载?谢谢 哪几种服务器支持global.jsa 关于数据绑定控件的问题。 关于TIFF文件的处理 DLL动态调用的问题,应注意些什么? 有关错误提示问题的文件存放在哪里呀 vf怎样求2个日期类型的差值?象sqlserver的datediff一样。 一个程控交换问题。 请教各位高手,如何在程序中模拟鼠标点击行为,大大加分!!!!!!!!!!!!!!!! 关于一个消息参数的麻烦………………求救高手! 我在微软的网站上下载了一个DCOM的例子,但不能在两台机器上运行? chinajordan(超飞人)请进!!!!!!!!!!!!!!!!!!!! 如果你是sql语句的高手,请看 【高一地理】读地壳物质循环示意图,依据组成地壳的矿物和三类岩石1.读地壳物质循环示意图.依据组成地壳的矿物和三类岩石的互相转化,判断属于方框②的岩石有(大理岩 )2.据图判断下 汽车、电动车一般都要使用铅蓄电池.某铅蓄电池用的酸溶液是溶质质量分数为28%的稀硫酸.若用1840克溶质质量分数为98%的浓硫酸,配的稀硫酸溶液的质量为多少克?配制该稀硫酸时,需要水多 fruit(水果)是可数名词还是不可数名词 汽车,电动车一般要使用铅酸蓄电池.某铅酸蓄电池用的酸溶液溶质质量分数为30%的稀硫酸,先用1L溶质质量汽车、电机车一般要使用铅酸蓄电池.某铅酸蓄电池用的酸溶液是溶质质量分数为30%的 hot的中文意思 物理人会沉到水中是因为人的密度比水大吗? 地震是地壳岩石在地球内力的作用下引起的震动相象,它由( )`( )和( )构成 Hot的中文含义 当河水内的泥沙量增加时,其密度为何会变大? dog 的同类词 hot stuff的中文意思是什么? 由于长江上游的植被受到破坏,造成水土污染,河水中的泥沙含量增加,使得河水的密度( ),河水对堤坝的压强( )为什麽?说明理由下!谢谢拉! hot的同类词什么? hot 中文意思 1.由于长江上游的植物受到破坏,造成水土流失,河水中的泥沙量增加,使河水的密度_,河水的堤坝的压强_2.当过堂风前后窗子打开时,过堂风会把侧面墙上的衣柜门吹开,这是以为衣柜外_,衣柜内_ 求第一题,dog的同类词3个 hoT 的中文意思 由于长江上游植被受到破坏,造成水土严重流失,河水中的泥沙含量增加,使河水的密度( ) ,河水对堤坝的压强( )由于长江上游植被受到破坏,造成水土严重流失,河水中的泥沙含量增加,使河水的 汽车、电动车一般使用铅酸蓄电池.某铅酸蓄电池使用的酸溶液是质量分数为20%的稀硫酸.请回答下列有关问题:(1)若用100g质量分数为98%的浓硫酸(密度为1.84g/cm3)配制该稀硫酸时,需要 蓄电池在汽车启动后还有哪些作用(请专业人士或相关技术人员回答,具体点) 外墙保温用的玻璃丝棉板,容重应该用多大的?优缺点有哪些?外墙用这么低的会不会脱棉啊?现在的玻璃棉有憎水的,效果好不好? hot dog food fruit等词什么时候作为可数名词什么时候作为不可数名词?包括drink,我需要的是解决这类问题的方法及判断方法 salad,ice cream在什么情况下是可数名词,什么情况下是不可数名词啊比如:我有几个冰激凌是可属还是不可数? 我有几盘沙拉是可属还是不可数? 提问时:Do you like icecream 还是icecreams? 按照古英语与口语来说 hot dog应该有三种以上的意思 .wannaknow101 求 fruit是可数名词吗,说什么指水果时不可数指水果时不可数可指有多少种水果时可加S,最好有例句给我看 如果配制汽车用铅蓄电池中溶质质量分数为30%的稀硫酸500g 需要溶质质量分数为98%【密度为1.84g\cm】的浓硫酸多少毫升? hot fruit、vegetable、food、dessert哪些是可数名词 我急需啊!明天就要用!麻烦了解决了我会再加分的! 汽车、电机车一般要使用铅酸蓄电池.某铅酸蓄电池用的酸溶液是溶质质量分数为30%的稀硫酸,先用1L溶质质量为98%的浓硫酸(密度为1.84g/cm3 汽车、电机车一般要使用铅酸蓄电池.某铅酸蓄电池用的酸溶液是溶质质量分数为28%的稀硫酸,现用1 L溶质质量分数为98%的浓硫酸(密度为1.84 g/cm3)配制该稀硫酸.问:(1)1 L溶质质量分数 food,vegetable and fruit 是不是可数名词? 请问保温棉是玻璃纤维棉吗,掉身上很痒的那种? 电动车一般都要用铅蓄电池.某铅蓄电池用的酸溶液是溶质质量分数为28%的稀硫酸.若用1000毫升溶质质量分数为98%的浓硫酸(密度为1.84克每ml³)来配置溶质质量分数为28%的稀硫酸.(1)1 汽车的蓄电池可以直接加98%的硫酸吗?汽车的蓄电池可以直接加98%的硫酸吗?汽车的蓄电池可以直接加98%的硫酸吗?汽车的蓄电池可以直接加98%的硫酸吗? 岩棉,玻璃丝棉,玻璃纤维棉 是不是都可以用做保温和吸音材料? hot的对应词 汽车蓄电池的硫酸浓度是多少 英语翻译Compressed packing with PP.16 batts/pack 430mm wide. hot反义词或对应词 fruit是可数名词吗? 防火岩棉板容重偏差允许是多少?有国家规定吗有规范吗 英语“these"的对应词是什么,hot 的对应词是什么 河水中的泥沙含量增加,使河水的密度(),河水对堤坝的压强() 理由 ice cream ,salad作为可数名词时的复数是怎样的 带hot的词 泥沙不溶水 为什么河水密度大于水化学题上说饱和食盐水中再加盐 密度不变 因为食盐再不溶解 那泥沙也不溶解在水里 为啥含泥沙的河水密度大于水或者说 再加入了食盐但不溶 密度变了吗 图纸上只写屋面保温材料用5.5厚硬质岩棉板,请问该用多少容重的,需不需要憎水性的岩棉板. I want some chicken and a hot 词语搭配!Hot!无锡惠山 趵突泉山东济南 蝴蝶泉云南大理 华清池山西临潼 跑虎泉浙江杭州 二 泉开始是连线,现在 汽车电瓶蒸馏水加多了,对电瓶有没有坏处,蒸馏水和电解液一样吗 补充句子1,No.I'm not( )( )hungry 2,Here( )a hot dog ( )you.( )you 玻璃每立方米的容重是多少吨,钢化玻璃和普通玻璃的容重一样吗? 电瓶里面有硫酸也有电解液{蒸馏水},但是在加的话哪里圆硫酸?哪里又是加电解液的?电瓶里面的硫酸和电解液是分别加的哪里的?打开那个小盖子后是应该加蒸馏水的吧! 英语句子改写 I want a hot dog改为一般疑问句怎么改.就a hot dog提问怎么提?、 12毫米玻璃容重是多少?(急) fruit是可数名词还是不可数名词? May I have a hot dog?怎么回答 玻璃幕墙的容重是多少? fruit是可数还是不可数名词?
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn