社区
控件
帖子详情
控件利用regsvr32注册,但不能使用
littleboy
2000-02-14 07:52:00
我利用regsvr32注册新控件后,但在部件中添加后,仍不能在窗体中使用.提示"该部件许可证信息没有找到,在设计环境中,没有合适的许可证使用该功能"
我使用的控件为grid32.ocx
请各位给我提示,谢谢..............
...全文
297
5
打赏
收藏
控件利用regsvr32注册,但不能使用
我利用regsvr32注册新控件后,但在部件中添加后,仍不能在窗体中使用.提示"该部件许可证信息没有找到,在设计环境中,没有合适的许可证使用该功能" 我使用的控件为grid32.ocx 请各位给我提示,谢谢..............
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zzf
2000-02-14
打赏
举报
回复
有的控件需要有注册文件才能使用,注册文件的名字一般与控件名字相同或相似,后缀为.lic。找注册文件后,将文件复制到Windows的System目录下,控件就可以使用了。
Firing_Sky
2000-02-14
打赏
举报
回复
我估计你也是没有拷贝*.oca文件
zm
2000-02-14
打赏
举报
回复
有的控件是加密过的,你需要付钱,然后把密码作为参数来引用,现在有freeocx可以解密,你试一下
ljunfa
2000-02-14
打赏
举报
回复
在安装了VB、VC的机器上都不会有这个问题。
你在窗口动态创建控件时,Create()函数的参数需要带上许可证号(最后一个参数)。
Lin
2000-02-14
打赏
举报
回复
控件有设计包和运行包两种,在设计时使用,还得有设计包。一般来说,相应的扩展名为OCA。有的合二为一,当然注册后即可使用,否则……
安装Visual Basic即可解决。实际上,VB内置该控件。
VB6.0动态加载ActiveX
控件
漫谈
VB6.0动态加载ActiveX
控件
漫谈 深圳 罗汉军 罗德昌 熟悉VB的朋友对
使用
ActiveX
控件
一定不会陌生,众多
控件
极大地方便了编程, 但唯一的缺陷是
不能
动态加载
控件
,必须在设计时通过引用,将
控件
放置在窗体上。 VB6.0已能够解决该问题,只是帮助中没有明确说明,并且没有描述到一些关键功 能,由于以前的版本中可以动态创建进程外服务:如果对象是外部可创建的,可在 Set 语句中用 New 关键字、CreateObject 或 GetObject 从部件外面将对象引用赋予变 量。 如果对象是从属对象,则需
使用
高层对象的方法,在 Set 语句中指定一个对象引 用: Dim xlApp1 As Excel.Application Set xlApp1 = New Excel.Application 或 Dim xlApp As Object '定义存放引用对象的变量。 Set xlApp = CreateObject("excel.application") xlApp.Visible = True ---- 这些语法很容易造成误导,以为动态加载ActiveX
控件
也是此方法,可能有朋 友也象我一样
利用
CreateObject尝试了无数次,却无功而返,不知微软公司是出于何种 考虑,动态加载ActiveX
控件
是扩展
控件
集合的方式实现,通过实际摸索,终于就如 何实现动态ActiveX
控件
找出了一条切实可行的方法,下面以一个具体的实例来详细说 明。 一、ActiveX
控件
---- ActiveX
控件
是 Visual Basic 工具箱的扩充部分。
使用
ActiveX
控件
的方 法与
使用
其它标准内装的
控件
,如 CheckBox
控件
,完全一样。在程序中加入 ActiveX
控件
后,它将成为开发和运行环境的一部分,并为应用程序提供新的功能。 ---- ActiveX 部件通过客户端/服务器关系与应用程序— 及与部件相互之间— 交 互作用。客户端是
使用
部件功能的应用程序代码或部件。服务器是部件及其关联的对象。 例如,假设应用程序
使用
ActiveX
控件
来提供一个标准的雇员窗体,供公司的多种 应用程序
使用
。提供雇员窗体的 ActiveX
控件
就是服务器,
使用
这个
控件
的应用程序 就是服务器的客户端。 二、加载方法 ---- VB6.0中对Controls 集合进行了扩展,以前版本中Controls 集合在窗体上列 举出已加载的
控件
,这在迭代过程中是很有用的。Controls 集合标识一个叫做 Controls的内在窗体级变量。如果忽略可选的 object 所在处的整数,则关键字 Controls 必须包括在内。我们通常在窗口中
使用
如下代码: Text1.Text="Hello, world" 其实也可以
使用
如下代码达到同一目的: Controls(1).Text="Hello, world" ---- 在VB6.0中除了原来的Clear、Remove 方法外(很奇怪,为什么微软在VB5.0中 只提供这两种方法,而没有提供Add方法,因为没有Add,这两种方法也就没什么用处), 增加了Add方法,该方法就是用于动态加载
控件
的: Controls.Add(progid as String, Name as String); progid: ActiveX部件的ProgID,如:"VB.CheckBox"; Name:ActiveX部件加载后的名称,如: "MyCheckBox"; 若要在窗体上添加一个名为MyButton的按钮,可以
使用
: dim oControl as Object '窗体级变量 注意:这里声明为Object对象类型 Private Sub LoadControl() Set oControl = Controls.Add ("VB.CommandButton", "MyButton") oControl.Left = 10 oControl.Top = 10 oControl.Visible = True '使
控件
可见 End Sub ---- 这是VB6.0的标准语法,它在例程中也是如此演示的,不过该方法虽然现实了
控件
的动态加载,按钮显示在窗体上,可以象普通按钮一样按下去,但加载的
控件
不能
预先设计响应事件代码,如:事件Sub MyButton_Click()将是非法的,当然,可以将要 响应的事件封装在
控件
内部。就编程的观点来看该方法没什么大的用处,开发ActiveX
控件
的目的是为了资源共享,为了被其他开发人员
利用
,所以要提供必要的事件接口, 显然
利用
该方法不行,通过分析VBControls等相关对象,找出VBControlExtender对象 与EventInfo相结合能提供事件陷井捕捉,VBControlExtender对象对动态添加
控件
特 别有用,它提供了一套通用的属性、方法、事件给开发人员,它的一个突出特点是能编 程设计
控件
的事件,熟习类编程的朋友对带事件的对象声明一定不会陌生: ---- Dim WithEvents objElemt as CElemtVBControlExtender也不例外,声明的 语法一样,只不过它有个特殊的事件ObjectEvent(Info As EventInfo),它能捕捉到对 象
使用
RaiseEvent产生的所有事件,EventInfo数据结构映射了事件的名称、参数个数 和参数的值。VBControlExtender和 EventInfo相结合,采用Select Case 就可以预先 将不同类对象的事件放置一起,各自独立运作。将上面的代码改写一下就能提供Click 事件了: ---- Dim WithEvents oControl As VBControlExtender '带事件声明声明之后您 就可以在代码窗口的左上角的对象下拉框中发现该对象出现了,也就是说,该对象有了 事件或方法了,它的事件有DragDrop,DragOver ,LostFocus ,GotFocus , ObjectEvent和Validate,其中ObjectEvent是通用的事件捕捉。 Private Sub LoadControl() Set oControl = Controls.Add ("VB. CommandButton", "MyButton") oControl.Visible = True End Sub Private Sub oControl_ObjectEvent(Info As EventInfo) Select Case Info.Name Case "Click" 'Click事件 '您可以添加处理Click事件代码 MsgBox "您按了MyButton!" Case Else ' 其他事件 ' Handle unknown events here. End Select End Sub ---- 当然对微软提供的标准
控件
能采用该方法添加,大家都不会怀疑,但自己开 发的
控件
也能吗?答案是肯定的,我们可以用一个实际的例子进行说明。 三、实例描述 ---- 假设一个本地网络的监控系统,需要在原理图与实物示意图间切换,原理图 包括组网结构、传输资源、监控主机等,而实物示意图包括路由器、设备、采集器等, 当然两种图的事件要一致,如双击某个设备图形将显示给设备的实时数据等,为了简化 维护,将原理图与实物示意图封装成ActiveX
控件
,由于每种图需要加载许多图形控 件,消耗资源较大,
不能
同时加载,需要将其分解为两个
控件
,在切换时首先卸载一个
控件
,然后加载另一个
控件
,所以要实现动态加载ActiveX
控件
。 ---- 原理图
控件
为--Theory.ocx ,对应工程为CTheory; ---- 实物图
控件
为---Fact.ocx ,对应工程为CFact; ---- 注意:为了简化,在设计
控件
时不设置许可证关键字。 ---- 实物图
控件
上的图形对象可以被拖动,拖动后的位置信息通过事件 ChangePosition来通知拥有该
控件
的窗体,以便下次加载能显示在最后位置,实物 图和原理图
控件
都有双击事件完成的工作相同,其他事件此处忽略。 ---- 四、具体示例 ---- 1、准备工作 ---- 对
控件
Theory.ocx 、Fact.ocx 进行
注册
(
利用
Re
gs
vr
32
.exe
注册
); ---- 建立窗体frmTest.frm ,在窗体上放置按钮cmdLoadOcx—“原理图” ---- 2、声明窗体级变量与加载函数LoadControl Dim WithEvents oControl As VBControlExtender '地图仿真
控件
对象 Dim mblnTheory As Boolean '是否显示原理图 Private Function LoadControl(intType As Integer) If Not oControl Is Nothing Then '首先判断对象是否存在,若存在则卸载 Controls.Remove("MapView") '卸载
控件
,此操作非常重要 End If If intType = 0 Then Set oControl = Controls.Add ("CTheory. Theory", "MapView") Else Set oControl = Controls.Add ("CFact.Fact", "MapView") End If oControl.Height = 3500 oControl.Width = 6500 oControl.Top = 100 oControl.Visible = True End Function Private Sub Form_Load() mblnTheory = True End Sub ---- 3、为按钮cmdLoadOcx编写代码 Private Sub cmdLoadOCX_Click() If mblnTheory Then Call LoadControl(0) mblnTheory = False cmdLoadOCX.Caption = "实物图" Else Call LoadControl(1) mblnTheory = True cmdLoadOCX.Caption = "原理图" End If End Sub ---- 4、为事件ChangePosition编写代码 Private Sub oControl_ObjectEvent (Info As EventInfo) Select Case Info.Name Case "ChangePosition" MsgBox CStr(Info.EventParamters.Item( 1).Value) + ":" + _ CStr(Info.EventParamters.Item(2).Value) Case "DbClick" '双击处理代码 Case Else ' End Select End Sub ---- 注意: EventInfo的参数EventParamters集合中是以1开始的,一般来说,微 软新的集合一般是以1开始的,而旧的是以0开始的,如RdoErrors.Item(0)。 ---- 5、关闭窗口前卸载
控件
Private Sub Form_Unload(Cancel As Integer) Controls.Remove("MapView") Set oControl = Nothing End Sub ---- 6、特别注意 ---- 通过Controls.Add方法添加的ActiveX
控件
一定
不能
在该工程中有该
控件
的任 何引用,否则系统将出错。 四、小结 ---- 通过
使用
动态加载ActiveX
控件
使用
庞大的应用程序变得很小,将不同的 ActiveX
控件
进行各种组合,使应用程序更加灵活多变,如您的应用系统要处理三十种门禁, 而某个具体的用户可能只有一种或两种门禁,根本没必要首先将所有门禁包含到应用 中,可将各个门禁独立封装,只安装
注册
需要的组件,就象Windows的自定义安装一样。 微软的未来技术基础是分布式的组件技术(DCOM),将会把代码的重用发挥得淋漓尽致。 您不妨试一试动态加载,也许会产生令您惊喜的效果! ---- 本代码在Win98、VB6.0(英文版)上编译、运行。
微软OCR
控件
vb 调用 modi
利用
微软OCR
控件
, 只需要不到10行代码就能够实现自已的OCR文字识别软件. 1. 添加
控件
,需要安装office2003, 没有安装office2003的可以从别人机子上拷贝相关文件,
注册
re
gs
vr
32
.exe mdivwctl.dll,
控件
一般在这个目录下:C:\Program Files\Common Files\Microsoft Shared\MODI.0, 只需要相关的几个文件就可以了, 此文件夹全部文件大概在21M左右. 2.工程->部件->添加这个
控件
:Microsoft Office Document Imaging 11.0 Type Library
VB6 系统托盘
控件
VB6.0将窗体最小化到系统托盘区
控件
法,才是最适合最方便的。
使用
已被微软封装好的
控件
:csystray1(名称可自定)。 可直接
使用
SysTray.ocx
控件
。也可用VB打开工程,做必要的话可作些改进(如更换图标、添加功能等),然后编译成ocx
控件
,可以随意命名。
注册
控件
方法:
32
位系统的方法, 将ocx文件复制到c:\windows\system
32
下面, 运行命令re
gs
vr
32
.exe Systray.ocx win7 64位系统的方法: 将ocx文件复制到c:\windows\syswow64下面, 运行命令c:\windows\syswow64\re
gs
vr
32
.exe Systray.ocx 即可. vb中添加
控件
----------------------------------------------------------------------------------------------------------
控件
的属性和事件浅析: 该
控件
的InTray属性是用来设置是否显示在托盘中,True为显示在托盘,False为不显示; 该
控件
的TrayIcon属性是在托盘中显示的图标式样; 该
控件
的TrayTip属性是鼠标移动到该
控件
上面时,显示的提示文字; 该
控件
的重要事件是几个我们常用的鼠标事件:按下、放开、移动、双击,编程时就是
利用
这些事件达到在任务栏中控制程序的目的。 ------------------------------------------------------------------------------------------------------- 源代码如下: '使程序最小化时显示到系统托盘 Private Sub Form_Resize() If Me.WindowState = 1 Then '如程序为最小化则—— cSysTray1.InTray = True '隐藏到任务栏 Me.Visible = False '让程序界面不可见 End If End Sub '点击托盘图标后,让程序窗体显示出来 Private Sub CsysTray1_MouseDown(Button As Integer, Id As Long) Me.WindowState = 0 '程序回复到Normal状态 Me.Visible = True '从任务栏中清除图标 cSysTray1.InTray = False '令程序界面可见 Me.setfocus End Sub
VC 检测CPU
使用
率以进度条显示.rar
VC 检测CPU
使用
率以进度条显示,程序作者:徐景周。源码包中包括一个检测
使用
率的
控件
,程序调用这个
控件
后,读取CPU
使用
率,并添加进度条更直观的显示出
使用
率。 程序还实现了动态菲屏功能(每次启动程序都会看到不同的菲屏显示效果)等功能,检测CPU
利用
率功能前,请先正确
注册
组件。
注册
语句如下:re
gs
vr
32
组件名(如: c:\\CPUuse.dll)
vb
控件
开发 开发ocx
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 Re
gs
vr
32
.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 事
控件
1,451
社区成员
41,355
社区内容
发帖
与我相关
我的任务
控件
VB 控件
复制链接
扫一扫
分享
社区描述
VB 控件
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章