下面列出制作OCX控件的步骤:
一:新建OCX
打开VB 选择新建工程在对话框中选择ActiveX 控件(如图一(map1.gif))打开后会见一空的文档这就是 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控件制作方法大概就需要以上几步就可完成。下面本人将编写一个简单的OCX控件供大家参考。此控件的功能是在控件中显示一个圆,当鼠标移到控件上的时候控件上的圆便会在鼠标不离开控件的前提下跟随鼠标移动。
新建一OCX控件,将控件的BorderStyle属性改为1,再加入一SHAPE控件将其形状改为Circle(如图二(map2.gif)) 添加以下代码:
Public Event Click()'定义该控件要产生的事件
Dim CircleX As Integer, CircleY As Integer
Private Sub UserControl_Click()
RaiseEvent Click'触发Click事件
End Sub
Private Sub UserControl_Initialize()
CircleX = Shape1.Width / 2
CircleY = Shape1.Height / 2
End Sub
Private Sub UserControl_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Shape1.BackColor = RGB(0, 0, 255)
End Sub
Private Sub UserControl_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim MoveX As Integer, MoveY As Integer
MoveX = X - Shape1.Width / 2
MoveY = Y - Shape1.Height / 2
If (MoveX < 0) Or (MoveX + Shape1.Width > UserControl.ScaleWidth) Or _
(MoveY < 0) Or (MoveY + Shape1.Height > UserControl.ScaleHeight) Then Exit Sub
Shape1.Move MoveX, MoveY
End Sub
Private Sub UserControl_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
Shape1.BackColor = RGB(255, 0, 0)
End Sub
Property Get PosX() As Integer '取得CircleX的值显示给用户
PosX = CircleX
End Property
Property Let PosX(ByVal New_X As Integer) '把用户写入的值设置到OCX控件内部
If (New_X < Shape1.Width / 2) Or _
(New_X > UserControl.ScaleWidth - Shape1.Width / 2) Then
MsgBox ("圆的X值超出界限了")
Else
CircleX = New_X
Call UserControl_Resize
End If
End Property
Property Get PosY() As Integer
PosY = CircleY
End Property
Property Let PosY(ByVal New_Y As Integer)
If (New_Y < Shape1.Height / 2) Or _
(New_Y > UserControl.ScaleHeight - Shape1.Height / 2) Then
MsgBox ("圆的Y值超出界限了")
Else
CircleY = New_Y
Call UserControl_Resize
End If
End Property
Private Sub UserControl_ReadProperties(PropBag As PropertyBag)
CircleX = PropBag.ReadProperty("CircleX", Shape1.Width / 2) '将用户设置的值读出来
CircleY = PropBag.ReadProperty("CircleY", Shape1.Height / 2) '同上
Call UserControl_Resize
End Sub
Private Sub UserControl_Resize()
Shape1.Move CircleX, CircleY
End Sub
Private Sub UserControl_WriteProperties(PropBag As PropertyBag)
Call PropBag.WriteProperty("CircleX", CircleX, Shape1.Width / 2) '将用户设置的值保存
Call PropBag.WriteProperty("CircleY", CircleY, Shape1.Height / 2) '同上
End Sub
摘自:网络整理
相关文章参考:
※关于三个概念:ActiveX、OLE和COM
※VB 单击ListView控件某列表头进行排序
与控件相关文章:
※VB表格控件总览与例程分析※
※VB 设置控件边框颜色(如:List、Text、Picture)※
※VB控件注册 - 利用资源文件将dll、ocx打包进exe文件
※做VB的,经常注册和反注册OCX控件和DLL链
※VB表格控件总览与例程分析
※根据窗体自动调整窗体内控件大小 注:实用,可以直接引用
※用户控件制作讲解与实例
※VB制作OCX控件的步骤
※【引用】窗口处理技巧大全 vb(窗体控件)
※VB让控件可以当标题栏拖动
※VB 调用腾讯截图控件CameraDLL.dll
※VB表格控件总览与例程分析
※VB表格控件总览与例程分析
※☆Mp3Play.ocx控件让音乐之声响起来
※为系统加载右键注册控件选项【VB 注册控件】
※VB中MsFlexGrid控件的使用细则
※点击MSFlexGrid数据控件的标题进行数据排序
相关文章参考:
★VB查找替代字符串的函数
★VB换行气泡提示类
★VB/VBA通用路径选择对话框
★ASCII码表0-255完整版 附详细注释
★VB的KeyAscii
★VB取得TextBox、RichTextBox光标所在的行和列(支持汉字)
★VB取得TextBox、RichTextBox光标所在的行和列(支持汉字)
★VB如何实现Undo(撤消)功能
★VB计算文本文件的行数
★VB获取快捷方式原文件路径
★微软 Small Basic 简体中文版 已经发布了
★VB操作Excel 非常详细 [网摘]
★VB如何判断文件正被占用/已被打开
★VB添加listbox 的水平卷动轴
★VB打开资源管理器并指定文件
★VB根据窗体自动调整窗体内控件大小 注:实用,可以直接引用
★VB中的指针技术
★Visual Basic编程常见问题及解答(1)
★Visual Basic编程常见问题及解答(2)
★Visual Basic编程常见问题及解答(3)
★VisualBasic变量、常数和数据类型及过程概述
★VB6的后期绑定和前期绑定
★VB用户控件制作讲解与实例
★VB制作OCX控件的步骤
★VB中FSO的调用的两种方法
★用VB操作EXCEL
★VB判断文件及目录的存在性
★VB网站(最新、经典源代码、技术文章、基础知识)
★VB得到指定文件夹下的文件列表
★用VB产生随机任意大小文件挤满硬盘
★VB文件的读写操作
★VB创建超链接 打开指定网站的几种方法
★VB 源码 删除重复行程序 函数
★VB 计算自己程序段所用时间
★VB 获取路径名各部分 (获取文件路径,获取文件名,获取文件扩展名)自编
★几行VB代码拿下注册表
★VB 在浏览器中打开指定网址
★VB窗口置顶
★vb在 ListBox 之中点击右键弹出菜单
评论