导航:首页 > 五金知识 > vb6自定义activex工具箱图标

vb6自定义activex工具箱图标

发布时间:2022-06-07 14:16:58

㈠ vb6 怎么修改自定义控件的图标

首先随便找一个VB6.0程序进行编译:在“文件”菜单下选择生成exe命令,在弹出的生成工程对话框中按确定按钮即可:

通过以上编译过程,生成了一个exe可执行文件,图标是VB6.0默认的图标(由于ico属性未修改),非常不美观。

接下来去互联网下载自己喜欢的ICO图标,然后通过窗体Form1的ico属性进行添加。

在电脑中随便选择一个喜欢的ico图标,结果弹出如下对话框:图标加载失败。

那是由于刚刚加载的ico图标不符合VB6.0的格式要求。VB6.0图标需要满足以下几点:
色深:256色
尺寸:支持48 x 48(像素)或以下
格式:ico(就是Windows下的图标格式)

紧接着再对这个图标进行加载:可以看到图标已经成功加载。

对VB6.0程序进行编译,生成如图所示星形图标,比较美观。用户可以根据自己需要记载满足VB6.0格式要求的各种图标。

㈡ VB6.0MouseIcon属性设置了自定义图标的问题

选中要设置的控件,然后把MouseIcon设置成你要的Ico文件,把MousePointer设置为99 Custom

㈢ win10 系统如何在VB6中添加ActiveX控件

对于这个控件,首先查下QRmaker这个二维码控件是否支持win10?vb6本身就对xp以上系统不兼容,建议安装个xp虚拟机!在虚拟机里玩vb6吧!

㈣ 用VB创建activex控件

Active Document DLL, Active Document EXE,这种技术基本淘汰

ActiveX exe 进程外组件
ActiveX DLL 进程内组件

所谓 ActiveX 部件是指一些可执行的代码,比如一个 .exe,.dll 或 .ocx 文件,它们在提供对象时遵循 ActiveX 的规范。通过 ActiveX 技术,程序员就能够把这些可复用的软件部件组装到应用程序或者服务程序中去了。

可以购买提供一般服务的 ActiveX 部件,比如数值分析或用户界面等部分。也可以创建一些部件把自己的业务封装后,再和一般的部件组合起来。以这种方式复用经过测试和标准化了的代码就叫做部件软件开发。

不要把使用 ActiveX 技术的部件软件开发和面向对象编程 (OOP) 混淆起来。使用 OOP 方法可以建立基于对象的软件部件;使用 ActiveX 技术可以把已创建的基于对象的部件组合起来,而这些部件可以通过许多不同的工具来创建。换一种说法就是,OOP 关心的是创建对象,而 ActiveX 关心的是使对象在一起工作。

例如,可以使用诸如 Microsoft Visual C++ 之类的 OOP 工具构造一套有用的对象。其他 C++ 的开发人员可以使用和进一步扩充这些对象。然而,如果在一个 ActiveX 部件中装进了这些对象,那么,其它任何支持 ActiveX 技术的编程工具也就能够使用和进一步扩充它们了。

Active是一套规范,符合这套规范的Exe就是Active Exe,就像OLE和COM一样。
Active Exe可以被其他标准exe和Active Exe像调用组件一样使用,与Active Dll不同,Active exe是进程外调用,在这方面它有exe的一点特性。

㈤ VB制作OCX控件

利用vb自制ocx控件

如今OCX控件在编程中已占领了很重要的地位,我们可以利用OCX控件完成一些相当复杂的编程操作。同时OCX控件还有利于主程序的简单化、功能的重用、隐藏程序实现细节、便于升级、传播方便等优点。现在我们可以利用VB 6.0方便地制作出自己的OCX控件供我们在编程中使用,同时还可以把它送给你周围喜欢编程的朋友!下面列出制作OCX控件的步骤:
一:新建OCX
打开VB 6.0选择新建工程在对话框中选择ActiveX控件,打开后会见一空的文档,这就是OCX控件的初始界面。想看一看空OCX控件的效果吗?选择“添加工程”选中标准EXE,这时你就可以像调用其它控件一样在左边的工具栏里选择刚才新建的OCX控件图标,放在标准的EXE文档中看一看有什么效果!(什么也没有!)自然因为刚才的OCX文档是空的嘛。
二:创建界面
一般我们用VB创建OCX控件都是在我们的控件里添加其它的控件来组合成一个完整的控件(也可以让它只完成某种算法),比如:你可以在上面添加一按钮、编辑框,这时你再用第一部的方法看一看效果,是不是控件上多了一个按钮和一个编辑框。
三:OCX属性
一个OCX控件有许多的属性,比如控件背景是否透明(BackStyle),控件是否可以获得焦点(CanGetFocus)等。这些属性都可以在控件的“属性框”中找到。
四:添加事件
一个控件有很多事件,如:Click、MouseDown、MouseUp、MouseMove等。要触发这些事件都需要你加入代码。在控件的声明处加入Public Event Click()就表明该控件有一“Click”事件。自己编写的控件有什么事件就在声明处加几条事件。关于触发事件是使用“RaiseEvent”语句来完成的,如:RaiseEvent事件名(参数)。
五:用户属性
一个控件应有许多属性供用户设置,如:控件的背景色、控件要显示的图形等。它们通常用Property Get和Property Let两条语句来完成。前者表示给用户显示一个属性的值,后者表示用户设置一个属性的值。
六:保存属性和读取属性
当属性被用户更改后需要将该属性值保存,以便控件运行时读取更改后的属性值。它们分别用ReadProperty和WriteProperty两种方法来完成。前者表示读取一个属性值,后者表示写入一个属性值。
好了,一个简单的OCX控件制作方法大概就需要以上几步就可完成。有兴趣的朋友不妨一试。

代码:
Private Sub Command1_Click()
a = Val(Text1.Text)
b = Val(Text2.Text)
Call add(a, b)
End Sub

Private Sub add(ByVal a As Integer, ByVal b As Integer)
Label1.Caption = a + b
End Sub

㈥ vb6.0 按钮控件怎么加图标

vb6.0activex
控件是:
1)通过工程-部件。
2)在部件对话框勾选所需要的控件-确定,就可将所需activex
控件添加到工具箱
3)双击工具箱所需控件,添加到窗体,然后双击窗体上的该控件,编写该该控件的应用程序代码。

㈦ vb.动态添加 ActiveX控件

对于未注册(未引用)的控件:在运行时添加未引用的控件
您也可以利用 Add 方法来动态添加一个在工程中没有被引用的控件。(“未引用的”控件是不出现在 Toolbox 中的控件)。为此,您必须也把控件的License 关键字添加到 Licenses 集合中。下面的示例中在添加控件本身之前添加了控件的许可证关键字: Option Explicit Private Sub Form_Load()
Licenses.Add "prjWeeks.WeeksCtl", "xydsfasfjewfe" //添加引用,必须。
Set extCtl = Form1.Controls.Add("prjWeeks.WeeksCtl", "ctl1")
extCtl.Visible = True ' The control is invisible by default.
End Sub

㈧ VB activex ocx控件 菜单编辑器

ocx控件对于开发过Windows应用的朋友来说一定不会陌生,它以外部component的形式对程序提供强大的支持,如VB工具栏中的picturebox、label、image等都是ocx控件。然而要开发自己的ocx却有一定难度,以前程序员大都用cdk (control develop kit)来设计,但是这需要掌握相当的c语言技巧,其实VB从5.0开始就支持ocx控件开发,我们可从VB的samples中找到一些例子,然而这些例子比较抽象,不好理解,下面请跟我一起来做个十分实用的ocx控件,你只要懂一些VB编程基础就可以了!
大家对Windows的菜单非常熟悉,这种统一格式的灰色菜单有时并不能满足一些应用程序的要求,特别是那些对界面要求比较高的多媒体设计。问题是,VC、VB中提供的菜单编辑器并不支持图形菜单功能!不要着急,我们马上自己来开发一个!

创建 menus工程

首先打开VB6.0,在新建工程中选择Activex 控件, 这时设计窗口出现一个类似form表单的界面 这就是你的ocx设计器,缺省名为UserControl1。
1. 在"工程"菜单上单击"Project1 属性",打开"工程属性"对话框。选择"通用"选项卡,将工程名称改为menus
2. 在UserControl1 的"属性"窗口中点击"名称" 属性并且把用户控件名改为menuControl
你可能注意到, menuControl的"属性"窗口和标准的VB的form"属性"窗口既类似又有不同。记住,现在我们设计的是ocx控件,而不是VB中的form!

添加 Test 工程
由于 .ocx 工程不能独立运行,所以我们将添加一个Test工程。在同一工程组中装入设计工程(menus工程)和测试工程(Test工程)将十分有利于调试运行中的部件。
1.在"文件"菜单上单击"添加工程"以打开"添加工程"对话框。
注意: 不要单击"打开工程" 或"新建工程",因为这样会关闭控件工程。
2.双击"Standard EXE"图标以添加普通的 .exe 工程(即我们的Test工程)。
该新工程立即成为这个工程组的"启动"工程。"工程资源管理器"窗口以黑体名字的显示来标识"启动"工程。
注意: ActiveX 控件工程是不能作为启动工程的。
3. 在"文件"菜单上单击"保存工程组"用以保存测试工程和工程组。
& ocx代码设计 &
1. 在menus工程的mole模块中增加如下代码:
Type menuRect '创建用户自定义类型
left As Integer
top As Integer
right As Integer
bottom As Integer
End Type
2. 在控件设计窗口中加入一个picturebox控件,取名为bmpmenu。
在bmpmenu中加入另一个picturebox控件,取名为menuitem。
注意: menuitem是bmpmenu的子控件。并且,这两个picturebox的
AutoSize属性皆设为True,BorderStyle属性皆设为None。
3. 在控件设计窗口中的General->Declarations中增加如下代码:
Public g_selectedItem As String
Dim g_fileName As String '菜单文件名
Dim g_height As Integer 'ocx控件的高度
Dim g_width As Integer 'ocx控件的宽度
Dim bmpRects() As menuRect 'bmpRects()用来记录所有菜单项的位置
Dim currentItemNumbers As Integer
Dim currentItemNumber As Integer
Public Event MENUITEMDOWN()
注意: MENUITEMDOWN是我们添加到控件中的一个事件,它的详细作用我们稍后会具体介绍。
4. 为我们的菜单控件添加两个属性: childs 和 BmpName
childs属性表示菜单控件的菜单项数目, BmpName属性表示菜单控件的菜单文件名
首先,打开menuControl的代码窗口。在"工具"菜单上点击"添加过程"打开"添加过程"对话框。在"名称"框输入名字childs。单击"属性"和"公共的"后再单击"确定"。
你将看到如下的代码:
Public Property Get childs() As Variant
End Property

Public Property Let del1(ByVal vNewValue As Variant)
End Property
然后,在代码窗口更改我们新创建的属性过程(修改的部份以黑体表示):
Public Property Get childs() As Integer
childs = currentItemNumbers
End Property

Public Property Let childs(ByVal vNewValue As Integer)
currentItemNumbers = vNewValue
PropertyChanged "childs"
PopAndResize ' 这是一个子过程
End Property
当你对childs属性赋新值时均执行 Property Let 过程, 而当你对childs属性检索该属性值时均执行 Property Get 过程。

对BmpName属性也同样处理,它的代码部份如下:
Public Property Get BmpName() As String
BmpName = g_fileName
End Property

Public Property Let BmpName(ByVal vNewValue As String)
g_fileName = vNewValue
PropertyChanged "BmpName"
PopAndResize
End Property
5. 为了初始化ocx控件,在 UserControl_InitProperties 事件过程中
添加如下代码:
Private Sub UserControl_InitProperties()
BmpName = ""
childs = 0
End Sub
在UserControl_Resize 事件过程中添加如下代码:
Private Sub UserControl_Resize()
If g_height < 20 And g_width < 20 Then '决定设计状态时的控件大小
UserControl.Height = 300
UserControl.Width = 300
Else
UserControl.Height = g_height '决定运行状态时的控件大小
UserControl.Width = g_width
End If
End Sub
注意: ocx控件设计涉及到许多重要概念,大家必须亲自实践才能真正融会贯通,
下面简单地介绍一下ocx的事件过程设计。
与一般的可编程对象不同,ocx控件同时具有设计时和运行时的两种行为。 即开发者在设计时把一个控件放入窗体时,控件中的一些代码将会执行。
例如,把我们设计的menu控件放入test工程的窗体时, 放置在 UserControl_Resize 事件过程中的代码将会执行;当test工程进入运行状态时, UserControl_Resize事件过程中的代码也会执行。所以,我在UserControl_Resize过程中使用If...Else语句来决定menu控件分别在设计状态和运行状态时的尺寸大小。
6. 好了,我们的ocx控件马上就要完工了,再坚持一下!(ocx确实有点难度,不过它可是代表最新的技术设计概念哦!)
把下面的sub过程加入ocx设计器的代码部分:
Sub popbmpMenu(xposition As Integer, yposition As Integer, itemNumbers As_ Integer, fileName As String)
ReDim bmpRects(itemNumbers)
bmpmenu.Visible = False
g_fileName = fileName
bmpmenu.Picture = LoadPicture(g_fileName + ".bmp")

menuitem.Visible = False
currentItemNumbers = itemNumbers
itemHeight = Int(bmpmenu.Height / itemNumbers)
For i = 0 To itemNumbers - 1
bmpRects(i).left = xposition
bmpRects(i).right = bmpmenu.Width
If i = 0 Then
bmpRects(i).top = yposition
Else
bmpRects(i).top = bmpRects(i - 1).bottom
End If
bmpRects(i).bottom = itemHeight * (i + 1)
Next i
bmpmenu.ZOrder 0
bmpmenu.left = 0
bmpmenu.top = 0
bmpmenu.Visible = True
g_height = bmpmenu.Height ' 菜单位图文件决定了ocx控件的大小
g_width = bmpmenu.Width
End Sub

Sub PopAndResize()
menuitem.Visible = False
If childs > 0 And BmpName <> "" Then
Call popbmpMenu(0, 0, childs, BmpName)
End If
UserControl.Height = g_height ' 调整ocx控件的大小
UserControl.Width = g_width
End Sub

Private Sub GetSelectedItem() '判断哪个菜单项被选中
g_selectedItem = right(g_fileName, 2) + "-" + LTrim(Str(currentItemNumber))
End Sub

最后是两个picturebox上的一些代码:
Private Sub bmpmenu_MouseMove(Button As Integer, Shift As Integer, X As Single, _
Y As Single)
menuitem.Visible = False
For i = 0 To currentItemNumbers - 1
If X > bmpRects(i).left And Y > bmpRects(i).top And X < bmpRects(i).right _
And Y < bmpRects(i).bottom Then
currentItemNumber = 0
menuitem.Picture = LoadPicture(g_fileName + "-" + LTrim(Str(i + 1)) + ".bmp")
currentItemNumber = i + 1
menuitem.Move bmpRects(i).left , bmpRects(i).top
menuitem.Visible = True
Exit Sub
End If
Next i
End Sub

Private Sub menuitem_MouseDown(Button As Integer, Shift As Integer, X As Single, _
Y As Single)
GetSelectedItem
menuitem.Visible = False
'启动MENUITEMDOWN事件,此事件的执行代码不写在ocx
'中,而是写在调用此ocx的应用中。
RaiseEvent MENUITEMDOWN
End Sub

& 测试ocx控件 &

OK, 我们的ocx终于完成了!下面我们可以来测试一下了!
制作一张菜单bmp文件,它的名字为c2.bmp,共有5个菜单项。
制作5个菜单项的激活状态位图,取名为c2-1.bmp,c2-2.bmp,c2-3.bmp,c2-4.bmp,c2-5.bmp
将这些位图文件存放在和工程组同层的文件夹中。
关闭ocx设计器窗口,打开ocxTest窗口,我们发现在ToolBox工具栏中多了一个新的控件,这就是我们所设计的menuControl。在ocxTest窗口上放置一个menuControl控件,然后在代码窗口中填入以下程序:
Private Sub Form_Click()
menuControl1.BmpName = App.Path + "\c2"
menuControl1.childs = 5
menuControl1.Visible = True
End Sub

Private Sub Form_Load()
menuControl1.Visible = False
End Sub

Private Sub menuControl1_MENUITEMDOWN()
menuControl1.Visible = False
Dim selectMenu As Integer
selectMenu = Val(Trim(Mid(menuControl1.g_selectedItem, 4, 2)))
Select Case selectMenu
Case 1
'第一个菜单项被选中
Case 2
'第二个菜单项被选中
Case 3
'第三个菜单项被选中
Case 4
'第四个菜单项被选中
Case 5
'第五个菜单项被选中

End Select
End Sub

怎么样?调用够简单的吧!这正是微软提出的组件设计的优势。不错,ocx设计的确有些难度,然而一旦设计好,它的调用是十分方便的。ocx的可重用率和易维护性是值得我们在设计时多花些时间的,更重要的是,在软件设计越来越复杂的今天,采用正确的组件设计思想是尤为关键的!
& 编译ocx &

如果一切顺利的话,我们就可以编译ocx了。
1. 在"工程资源管理器"窗口单击"menus"以选择该工程。
2. 在"文件"菜单上单击"生成 menuControl.ocx" 。
注意: 如果你需要你的ocx控件具有许可证,可按如下操作
在"工程"菜单上,点击"menus 属性"打开"工程属性"对话框。选择"通用"选卡,选定"要求许可证关键字",然后单击"确定"。
这样,即使有人将你的ocx拷贝了去,他也无法使用!你就不必担心你的心血被人侵犯喽!

& 使用ocx控件 &
由于我们的ocx已经编译成功,所以现在就可以像使用系统中的标准控件一样来调用我们的menuControl.ocx了。
退出设计时的工程组,新建一个VB的标准工程,在"工程"菜单上单击"部件",在 Controls 的选项卡上,复选"menus"后再单击"确定"。现在menuControl控件和Label,TextBox等控件就一样被对待处理了,只不过menuControl是我们自己设计的!
菜单的图形文件起名有一定规则,大家只要看一下程序就明白了。当然,读者朋友们也可以按自己喜欢的方式来处理文件名。

& 后记 &

ocx控件设计还涉及到许多方方面面,由于篇幅有限,这里就不详述了(其实,大家能坚持到这里就够有耐心了! (-_-) )。menuControl还有不少地方需要改进,这就待以后再慢慢完善了。

㈨ 怎么用vb6.0编ActiveX控件

都四级了。还0分悬赏~小气了点吧。

创建一个ActiveX控件工程 在“文件”选单中选择“新建工程”,然后双击“ActiveX控件”图标,生成一个控件工程项目(缺省名UserControl1)。此时设计窗口显示一个类似于窗体的界面(无边框),其属性窗口也类似于窗体的属性窗口,只是有很多熟悉的属性没有了,且还有一些一般窗体不具有的属性。选取“工程选单”最下面的“UserControl1属性”项,在出现的对话框中改工程名称为“MyControl”。在属性窗口中改控件名称为“MyTime”。 到这里,就初步建立好了一个active控件工程。然后,我们来设计界面,我们加入一个timer(timer1)控件和一个label 控件,将timer1的“Interval”属性为1000,然后在Timer1_Timer()过程中加入如下代码: lblTime.Caption = Time 'Time 返回系统当前时间 现在将工程保存一下。由于控件工程不能独立运行,我们创建一个新的工程来测试一下设计的新控件。 选取“文件”选单上的“添加工程”,注意不要用“打开工程”或“新建工程”,那样会关闭控件工程。创建一个“Standard exe”工程,并将控件工程的设计窗口关闭,这时会发现在控件工具栏的最下边出现了一个名为“MyTime”的新控件。将其放至Form1窗体内,窗体上会出现一行文字,显示的正是当前时间,这就是新创建的MyTime的实例“MyTime1”。然后把我们后来加的那个工程设置为启动工程,这样,按F5运行看看效果吧。到这里,我们就初步实现了一个最基镜腶xtive控件。下面我们介绍一些高级的东西。 2、添加属性 为我们的控件添加Interval属性,使的我们可以设置timer的间隔。步骤如下: 选择菜单“工程”》添加用户控件》vb Axtivex控件界面向导,然后点击打开按钮,在出现的界面中单击下一步,出现如下界面: 这里左边显示的是可用的属性,右边显示的是所有已经选择的属性。我们先把右边的全部删除,然后在左边找的“Interval”,双击添加道右边,单击下一步。出现如下的界面: 上一个界面显示的是在你的自定义控件中那写控件已经有的属性,例如interval是timer控件有的。而这里可以加那些控件没有的,我么这里加一个TimeFormat属性,用来控制日期的显示格式。单击增加,在名称中输入TimeFormat,在类型中选择属性。单击确定。 然后用同样的方法新建一个GetTime方法和一个click事件,之后图如下: 之后单击下一步,出现如下界面: 这里,左边是我们建立的一些元素,右边是映射到的控件和成员,我们这里对应关系如下: 设置好了之后,单击下一步,就出现如下界面: 这里列出了我们自定义的属性和方法,那些系统的属性和我们自定义的事件不在这里显示。在上面的界面中,我们可以对我们刚才定义的属性:TimeFormat属性设置类型,默认值和运行时或则是设计时可改变与否,相信大家都看得懂。我们这里把类型设置为String,默认值为“hh-mm-ss",运行时为Read/Write,设计时为Read/Write。设置好了之后单击完成。然后可以在MyTime的代码窗口中看到程序为我们增加了一些代码。 这时,属性interval可以使用,但是,我们自己定义的属性TimeFormat并未生效,我们把Timer1_Timer过程改成如下: If Me.TimeFormat <> "" Then Label1.Caption = Format(Time, Me.TimeFormat) Else Label1.Caption = Time End If 改好之后,你在form1中把MyTime1的TimeFormat属性设置为:hh时mm分ss,在看看时间的显示吧。 也可以改变inteval属性来改变时间改变的间隔 如果我们双击Mytime1空间,可以看到,他有click事件。 Private Sub MyTime1_Click() End Sub 下面我们来分析以下click的原理: 我们会发现代码窗口中“通用”项下出现如下代码: Option Explicit Public Event Click() 大家也许能够看得出来,在这里只是定义了两个名称,它们和鼠标的Click毫无关系,下面的代码就把它们联系起来。 Private Sub UserControl_Click() RaiseEvent Click End Sub Private Sub Label1_Click() RaiseEvent Click End Sub RaiseEvent的功能是把控件或其上的子控件的事件进行转发,因为控件总是由其它的子控件组成,上面的代码的意思是:当你单击用户控件时,就出发控件的click事件,当label单击时,也出发。 现在关闭控件设计窗口,打开测试工程,在MyTime1的过程列表中,发现多了事件Click,点击Click,添加代码如下: Private Sub MyTime1_Click() MyTime1.Interval = 3000 Debug.Print "Interval的值为:" & MyTime1.Interval End Sub 运行测试工程,点击窗口中显示的时间,会在立即窗口中输出刚设定的Interval属性值是3000。 最后,我们刚才建立的方法还不能使用,我们现在来实现。可以看到,我们刚才的步骤完成好后,控件的代码窗口中自动加了如下代码: Public Function GetTime() As String End Function 我们改成如下: Public Function GetTime() As String GetTime = Time '返回当前时间,这里只是举例,大家可以加入其他的复杂代码 End Function 然后我们在测试工程中加入一个按钮(command1)在他的click事件中加入下面代码: Private Sub Command1_Click() MsgBox MyTime1.GetTime End Sub 然后运行,单击按钮看看效果。 到这里,我们把active的基本功能都实现了,大家如果看懂了,自然就知道做复杂控件了。

㈩ VB里面怎么添加ActiveX控件

在动行里输入:regsvr32 ocx的绝对路径
这样就好了!

阅读全文

与vb6自定义activex工具箱图标相关的资料

热点内容
平面镜成像需要什么器材 浏览:132
焦炉煤气放散装置构造及作用 浏览:463
背肌训练器材怎么做 浏览:272
济宁市阀门厂 浏览:704
氯化铵和氢氧化钙的反应实验装置 浏览:238
多功能仪表盘参数怎么设置 浏览:22
炉石里面机械克苏恩怎么获取 浏览:825
机械键盘的大f是什么意思 浏览:732
三个轴承座同轴怎么设计 浏览:410
气阀组和阀门组什么区别 浏览:89
电车仪表电量是怎么计算的 浏览:242
武术表演器材有哪些 浏览:23
汽车检测系统的输入装置是 浏览:794
燃气阀门机械手如何与报警器 浏览:230
电动工具定子怎么安装 浏览:493
自动破玻装置 浏览:792
铸件壁厚太厚铸造会出现什么问题 浏览:139
给水进户用什么阀门 浏览:925
yy的设备在哪里买 浏览:736
室外理地给水阀门井怎么设置 浏览:408