VB开发OCX控件的属性之自定义列表项

我们在开发OCX控件的时候,某些功能需要在属性中展示给用户选择,比如像下图窗体属性的边框样式一样:
在这里插入图片描述
那么像这样的下拉式列表是怎么编写的呢?其实很简单,我们在添加过程属性之前,自己定义一个列表类型,如下:
Public Enum Style
[None] = 0
[Fixed Single] = 1
[Sizable] = 2
[Fixed Dialog]=3
[Fixed ToolWindow]=4
[Sizable ToolWindow]=5
End Enum
“Style”是类的名称(自设),而这个类里面的“0-1-2-3-4-5”便是该类中包含的成员,“[]“中的字符串可以是中文或其他语言,但”=“后必须是数字,字符串和等号后的数字是对等的,在设计中可以用”[]“里的字符串或相应的数字相互对替。
以上就是一个拥有"0-5"个成员的类"Style”,接下来就可以写一个输入输出的属性了,但在这之前,我们得先以这个类定义一个变量,方便系统读写用户的设置,如下:
Dim Modality As Style
“Modality"为自定义的变量名称,而"Style"就是上面我们自己定义的类,这个变量声明"Modality"拥有类"Style"中的所有成员。
添加属性我们可以在菜单上的"工具”-“添加过程”,打开"添加过程"对话框,名称自设,比如"BorderStyle”,这个名称就是在我们的OCX控件属性中出现的名称,类型选"属性",范围选"公有的",若选择"私有的",“BorderStyle"是不会显示在属性页中的哦,如下图:
在这里插入图片描述
确定添加后,我们将其类型更改为"Style”,如下:
Public Property Get BorderStyle() As Style

End Property
Public Property Let BorderStyle(ByVal vNewValue As Style)

End Property
第一个函数Get表示输出(也就是显示用户选择的成员),第二个函数Let表示输入(也就是用户选择的结果输入),而"vNewValue"就是输入的数据,添加过程如下:
Public Property Get BorderStyle() As Style
BorderStyle = Modality
End Property
Public Property Let BorderStyle(ByVal vNewValue As Style)
Modality = vNewValue
'这里添加即时过程或者重绘过程等。
PropertyChanged “BorderStyle”
End Property
第一个输出的过程"BorderStyle = Modality"就是将"Modality"的数据传送给"BorderStyle",显示用户选择的结果;第二个"Modality = vNewValue"就是将用户输入的"vNewValue"数据存储到"Modality"变量中,而"PropertyChanged “BorderStyle”"这句告诉系统数据已经变动。
最后是属性怎么在设计时存储属性值的,要实现这个过程我们得用到UserControl中自带的两个读写事件:“WriteProperties"和"ReadProperties”,"WriteProperties"为存储属性值到内存中,而"ReadProperties"将存储的属性值从内存中读取出来。如下:
Private Sub UserControl_WriteProperties(PropBag As PropertyBag)
Call PropBag.WriteProperty(“BorderStyle”, Modality, 0)
End Sub
Private Sub UserControl_ReadProperties(PropBag As PropertyBag)
Modality = PropBag.ReadProperty(“BorderStyle”, 0)
End Sub
第一个存储属性值:
Call PropBag.WriteProperty(“属性名称”, 当前值, 初始化属性值)
第二个读取属性值:
读出的属性值 = PropBag.ReadProperty(“属性名称”, 初始化属性值)
注:属性名称可以是属性本身的名称,不是绝对的,也可在属性函数中定义其他的名称,但一定要一样的!
到这里一个OCX控件属性的编写就结束了,测试,打开Form窗体,在左边的部件栏中单击刚编写的UserControl控件图标,然后在Form窗体中拖出一个UserControl1控件,在这个控件的属性栏我们就可以看到"BorderStyle"这个属性了。呵呵~是不是很简单呢。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
01 , 01.txt 《 VB6.0中通过MSChart控件调用数据库 》 02 , 02.txt 《 用VB6实现动态增减控件 》 03 , 03.txt ActiveX控件的创建 04 , 04.txt ADO控件和DATA控件的冲突(不能共存)的解决方法 05 , 05.txt Combo的自动查询技术 06 , 06.txt DirectX7.0使用心得(1) 07 , 07.txt DirectX7.0使用心得(2) 08 , 08.txt DirectX7.0使用心得(3) 09 , 09.txt FSO对象模型在VB中的应用 10 , 10.txt MsComm 控件的文字传输范例 11 , 11.txt Office或IE4风格的ToolBar 12 , 12.txt Regsvr32.exe注册控件的具体用法 13 , 13.txt TextBox的自动调节 14 , 14.txt TextBox实现打印机效果 15 , 15.txt TreeView的基本操作 16 , 16.txt VB5中DBGRID控件VB6中使用 17 , 17.txt VB6.0动态加载ActiveX控件漫谈 18 , 18.txt VB与MS-Draw开发通用作图软件 19 , 19.txt VB中APP对象及其应用 20 , 20.txt VB中list控件的功能扩充 21 , 21.txt VB中防止将重复目添加到列表控件中 22 , 22.txt VB中用Multimedia MCI控件开发多媒体应用 23 , 23.txt Win Api在VB中的妙用 24 , 24.txt WINDOWS SCRIPT HOST对象在VB中的使用 25 , 25.txt 安装向导生成程序组并建立多个程序 26 , 26.txt 保存复选框选 27 , 27.txt 不用OCX来创建自己的控件(一) 28 , 28.txt 成组更新控件属性 29 , 29.txt 创建数据驱动窗体 30 , 30.txt 得到鼠标位置 31 , 31.txt 调整 Combo 下拉部分的宽度 32 , 32.txt 动态加入控件VB控件数组中 33 , 33.txt 对ListView中的列排序 34 , 34.txt 放一个Combo到Toolbar中 35 , 35.txt 改变 ListIndex而不发生 Click 事
VB中使用海康摄像头OCX控件抓图非常简单。首先,我们需要将控件添加到VB的窗体上。 1. 打开VB IDE,创建一个新的目。 2. 在工具箱中找到“COM 控件”选,点击右键选择“组件选择器”。 3. 在弹出的对话框中,选择“浏览”按钮,并导航到海康摄像头OCX控件的安装路径。通常情况下,该控件的文件名为“hkvideo.ocx”,位于安装目录的“OCX”子文件夹中。 4. 选中该控件,并点击“确定”按钮将其添加到工具箱中。 现在,我们已经成功将海康摄像头OCX控件添加到了VB工具箱中。接下来,我们可以在窗体上使用该控件实现抓图功能。 1. 在窗体上拖拽一个“Microsoft Web浏览器”控件用于承载海康摄像头OCX控件。 2. 右键单击该控件,选择“属性”。 3. 在属性窗口中,找到“URL”属性,单击其右侧的“…”按钮。 4. 在打开的网页中,选择摄像头并设置相关参数,如分辨率和画面质量。 5. 返回VB的IDE,并在窗体的代码中编写抓图的代码。 以下是一个简单的代码示例,用于实现抓图功能: ```vb Private Sub CaptureImage() ' 使用海康摄像头OCX控件名称,请根据实际情况修改 Dim ocx As HKVideoLib.hkvideo Set ocx = WebBrowser1.Object ' 调用控件的抓图方法 ocx.SnapPicture "C:\path\to\save\image.jpg" End Sub Private Sub Form_Load() ' 在窗体加载时调用抓图方法 CaptureImage End Sub ``` 以上代码将通过海康摄像头OCX控件抓取图像,并保存到指定路径。你可以根据实际需求修改保存路径和文件名。 总之,使用VB实现海康摄像头OCX控件的抓图功能非常简单。只需要将控件添加到窗体上,并编写相应的代码即可实现抓图操作。希望这能帮到你!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

键盘上的舞指

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值