用VB写OCX控件

news/2024/12/21 20:07:02/

用VB写OCX控件

一、 OCX简介

    OCX,即对象类别扩充组件。控件的最大好处是可重复利用,甚至可以在不同的编程语言之间使用,例如可以在VB中嵌入使用VC开发的控件。

二、用VB做一个OCX控件

1、打开VB6.0,鼠标点击左上角“文件(F)”,选择“新建工程(N)”。在弹出的对话框中选择“ActiveX控件”选项,点击“确定”按钮,如下图所示。
在这里插入图片描述
2、进入主界面,将工程名从默认的“工程1”改为“timectrl”,如下图所示。
在这里插入图片描述
3、在控件的界面里拖放一个“Label”控件和一个“Timer”控件,如下图所示。
在这里插入图片描述
4、将“Label”控件名称改为TimeShow,caption属性设为空。然后将“Timer”控件的Interval属性改为1000,表示“Timer”控件的Timer事件每1000ms(1s)发生一次,如下图所示。
在这里插入图片描述
5、双击“Timer”控件,在新出现的函数里添加Timer事件的处理代码。
(1)获取系统时间,需要用到GetLocalTime函数,其输入参数是一个SYSTEMTIME类型的结构体,GetLocalTime是kernel32.dll这个动态链接库中的导出函数。使用GetLocalTime的方法是先在VB文件的头部声明一下这个函数,然后再定义一个SYSTEMTIME类型的结构体,其代码如下:

Private Declare Sub GetLocalTime Lib "kernel32" (lpsystemtime As SYSTEMTIME)
Private Type SYSTEMTIME
wYear As Integer
wMonth As Integer
wDayOfWeek As Integer
wDay As Integer
wHour As Integer
wMinute As Integer
wSecond As Integer
wMilliseconds As Integer
End Type

(2)在“Timer”控件的事件处理函数中,将获取到的系统时间显示在“Label”控件中,其代码如下:

Private Sub Timer1_Timer()
Dim sysTime As SYSTEMTIME
Dim strTime As String
GetLocalTime sysTime
strTime = sysTime.wYear & "-" & _sysTime.wMonth & "-" & _sysTime.wDay & " " & _sysTime.wHour & ":" & _sysTime.wMinute & ":" & _sysTime.wSecond
TimeShow.Caption = strTime
End Sub

在这里插入图片描述
6、(1)点击“运行(R)”会出现如下所示界面。
在这里插入图片描述

(2)点击“允许阻止的内容(A)”,在弹出的对话框中选择“否”,如下图所示。
在这里插入图片描述
(3)点击“否”之后,将会出现如下界面。显示的内容为“2020-10-4 13:45:28”,也就是此时的系统时间,并且时间是一秒一秒地增加的。
在这里插入图片描述
7、在“文件”菜单里选择“生成timectrl.ocx”命令将这个OCX控件文件保存下来,这样一个OCX控件的制作就完成了。
在这里插入图片描述
注意:本人在实现上面一步的时候,点击“确定”按钮后,会弹出“访问系统注册表错误”提示对话框。采取的解决方案是:右击VB图标,打开属性,点击兼容性,设置为以管理员身份运行此程序。再打开就不会提示出错了。
在这里插入图片描述
三、 对OCX控件的测试

(一)在VB上的测试

1、打开VB6.0,选择“标准EXE”程序,然后在“工程”菜单里选择“部件”命令,这时会弹出如下图所示的“部件”对话框,点击“浏览”按钮,找到刚才生成的那个timectrl.ocx,然后点击“确定”按钮,完成部件的添加操作。如下图所示。
在这里插入图片描述
2、在控件工具条中会看到多一个控件(下图中的最后一个控件),这个多出来的控件就是刚才做的OCX控件。
在这里插入图片描述
3、将这个控件拖放到主界面上,然后执行程序,会看到类似于下图所示的结果,并且时间是一秒一秒地增加的。
在这里插入图片描述
(二)在VC上的测试

1、为了确保timectrl.ocx是已注册的控件,运行:regsvr32对这个OCX控件进行注册,即使注册过了,再注册也没什么负面影响。
详细步骤:以管理员身份运行命令提示符,访问timectrl.ocx所在位置,成功注册后,界面如下图所示。
在这里插入图片描述
2、打开VC6.0,建立一个MFC对话框工程。如下图所示。
在这里插入图片描述
在这里插入图片描述
3、在对话框任一空白处鼠标右击,选择“插入ActiveX控件 …”,如下图所示。
在这里插入图片描述
4、在“插入ActiveX控件”下拉框里找到timectrl.UserControl1,它所对应的路径是刚刚注册的路径,点击“确定”按钮,如下图所示。
在这里插入图片描述
5、结果如下图所示,并且上面的时间和VB测试程序上都是逐秒改变的。
在这里插入图片描述
至此,用VB写OCX控件就完成了。


http://www.ppmy.cn/news/901857.html

相关文章

VB--Adodc控件

Adodc控件 1.在左边菜单栏的空白处,右键,弹出截图中弹窗,选【部件】 在【部件】界面选浏览,然后找到截图中红框框选住的,勾选后,点应用,确定。 此时,左边工具栏已添加了下图框选的…

VB.NET 委托 Delegate Action Func

VB.NET 委托 :Delegate、 Action、 Func DelegateActionFunc实例参考资料注意点 委托,是CTS(公共类型系统)规定的5种类型之一(类类型、结构类型、接口类型、枚举类型、委托类型)。它能够调用对象的方法&…

vb.net 调用DLL

1.首先打开VS2015,点击菜单 文件-新建项目-模板-选择Visual Basic-Windos,选择Windows窗体应用程序,如下图。然后确定下一步 新建一个vb.net程序窗体,添加一个Button按钮。 2.点击菜单 文件-项目-添加引用 在引用对话框中选择浏…

VB.net小技巧——VB.net中的结构体和共用体

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 VB.net小技巧——VB.net中的结构体和共用体 前言结构体和共用体的定义一个完整的程序示例下位机和上位机浮点传输示例下位机示例上位机示例 前言 在C语言中,有一…

VB.net:VB编程语言/VB.net语言编程的简介、IDE安装、学习路线(几十项案例代码实现)之详细攻略

VB.net:VB编程语言/VB.net语言编程的简介、IDE安装、学习路线(几十项案例代码实现)之详细攻略 目录 VB编程语言的简介 1、VB编程语言、VBA编程语言、VBS编程语言、VB.net编程语言对比 2、VB语言对比VB.net语言 (1)、VB6.0之前——.NET Framework 引入之前 (2)、…

VB基础教程(一)

第一章 VB的诞生 我们需要什么 我们需要什么?当我们在一个精彩的游戏世界中游历了一番之后,或是惊叹于某一工具软件的小巧精致之余,多少总会产生些许编程的冲动。编程吗,在以前如果你对电脑还是一个门外汉,那实在是一…

vb语言代码大全

VisualBasic是微软公司推出的简单易学、功能强大编程工具,是一种可视化的、面向对象和采用事件驱动方式的结构化高级程序设计语言,使用VB能轻而易举地开发适合在Windows环境下各类应用程序。 本文主要介绍的就是vb语言代码大全,分别从五种常用的vb语言代码中来详细说明,跟随…

VB初步入门

VB 入门记录(一) 一、Visual Basic 界面简介 打开题目进入界面是这个样子的 ​ 图一 我们的题目信息在这里 ​ 图二 然后当你双击那个产生按钮的时候 ​ 图三 OK,这个时候我们需要用到的窗口界面就基本已经呈现出来了。 工程 在图的…