VB制作OCX控件的步骤
下面列出制作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
※注册ActiveX控件的几种方法(转) 分享※
※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 之中点击右键弹出菜单
VB制作OCX控件的步骤相关推荐
- win10注册ocx控件的步骤(包含错误处理方法0x80040200)
最近在测试一个加载ocx控件的C++程序,运行前要先注册ocx控件. 1.用运行命令提示符或者PowerShell. 2.利用命令进入到ocx文件所在的目录下输入注册命令 注册命令:regsvr32 ...
- 制作OCX控件简单流程
1.项目创建流程:文件-->新建-->项目,选择MFC项目-->MFC控件,输入项目名称,然后确定,所有属性选项默认,如下图所示. 2.在刚刚新建的项目中添加方法,首先在类视图中找到 ...
- 做VB的,经常注册和反注册OCX控件和DLL链
做VB的,经常注册和反注册OCX控件和DLL链 但是,每次都要 "开始"--"运行" --"regsvr32 C:\********\******.o ...
- VB 单击ListView控件某列表头进行排序
VB 单击ListView控件某列表头进行排序,实现方法比较简单,不用写什么函数,ListView控件本身就有排序功能了. Private Sub ListView1_ColumnClick(ByVa ...
- Mp3Play.ocx控件让音乐之声响起来
Mp3Play控件是由德国Dialog Dedien公司编写的一个MP3软件解码器,它能在Windows 9x和NT 4两种平台上工作,用户可以通过支持ActiveX控件的Windows编程语言(例如 ...
- C#中调用OCX控件
调用OCX控件的步骤: 1.在系统中注册该ocx控件,命令:regsvr32.exe 控件位置(加 /u 参数是取消注册) 2.在.net的工具箱中添加该控件,拖到form中去就可以了. 不用工具箱的 ...
- JavaScript调用OCX控件,运行时报错:对象不支持“XXX”属性或方法【已解决】
这段时间调试一个产品,其中一项是用javascript调用OCX控件. 控件注册成功之后(如何注册及处测试出现的问题参见另一篇博客:win10注册ocx控件的步骤(包含错误处理方法0x80040200 ...
- VC++ OCX 控件注册
转自:http://www.cctry.com/thread-5334-1-1.html 方法一:在dos或Windows命令行下运行:regsvr32 ocxname.ocx 注册 示例: regs ...
- VC++如何在程序中用代码注册和卸载ocx控件(代码)
方法一:在dos或Windows命令行下运行:regsvr32 ocxname.ocx 注册 示例: regsvr32 netshare.ocx //注册netshare.ocx控件 regs ...
最新文章
- 2022-2028年中国密集型光波复用(DWDM)设备行业市场前瞻与投资战略规划分析报告
- 三星E1200R语言设置_三星 S20 系列评测:依旧是 Android 阵营最高水平
- c# 获取html中指定标签信息,c# – 如何解析图像标签的HTML字符串以获取SRC信息?...
- 一步一步带你训练自己的SSD检测算法
- Asp.NET Core 轻松学-项目目录和文件作用介绍
- Python中中文字符也算单个字符
- 22. 二叉树的层次遍历
- MacBook设计图外泄,勒索团伙曾索要5000万美元天价赎金!
- UVA - 10603 Fill(隐式图搜索)
- 带小手的文档怎么复制
- 企业中爬虫问题(来自网易公开课)
- 优酷搞笑--万万没想到--台词
- Linux运维大牛带你认识真正 Linux 系统结构!超强入门技术文!
- 十张图,看数据分析如何赋能销售
- 旧唐书 卷一百九十六下 列传第一百四十六下
- Linux内核设计与实现(十)| 页高速缓存和页回写
- java上传图片怎么查看,Java上传图片并查看
- npm node升级到最新版本
- 使用 OpenAI API 构建 Next.js 应用程序的初学者指南
- 什么是计算机系统性能,什么系统性能好?电脑发烧友告诉你
热门文章
- 力压今日头条成 App Store 榜第一,个税 App 惊爆 62 例木马病毒!
- 蒋涛担任上方新一届董事长,打造 TokenSky 全球区块链服务生态集团
- 207 台服务器被种植木马,谁害死了“旧”乐视?
- java中scort意思_java入门—笔记
- Java实例方法和类方法的区别
- 字节跳动面试必问:kafkagroupid数目
- 一线互联网架构师筑基必备技能之Java篇,工作感悟
- mysql byte函数_mysql8 参考手册-format_bytes()函数
- Vue的批量更新原理
- mac上实时运行linux系统,使用Darling模拟器实现在Linux上运行Mac OS X程序