社区
COM/DCOM/COM+
帖子详情
控件接口是什么概念???
viperstorm
2006-08-24 08:21:46
我有一个ocx.可是按文档说的有个控件接口???
怎么ocx还有接口吗?????应该怎么用啊?谢谢
在线等!!
...全文
540
9
打赏
收藏
控件接口是什么概念???
我有一个ocx.可是按文档说的有个控件接口??? 怎么ocx还有接口吗?????应该怎么用啊?谢谢 在线等!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
迈克揉索芙特
2006-08-25
打赏
举报
回复
关于对象和接口的简要补充讨论
本主题,将完成从“创建和实现接口”开始,并在“实现属性”中继续讨论的那个代码示例。当然,在开始这个主题之前,阅读一下那些主题是有帮助的。
这个 Tyrannosaur 和 Flea 代码示例,看起来似乎用接口和对象来解决很快,也很轻松。把对象的引用赋给一个对象变量,把接口的引用赋给另一个对象变量。
事实上,所有的引用都是对象的引用。对一个接口的引用也是对实现接口的对象的引用。而且,一个对象可能有多个接口,但在底层它仍然是同一对象。
在 Visual Basic 中,每个类都有一个缺省的接口,该接口具有与类相同的名字。是的,几乎都是同样的。按照惯例,在类名前加一条下划线。该下划线指明了这个接口是隐藏在类型库里的。
这样,Tyrannosaur 类就有一个缺省名为 _Tyrannosaur 的接口。因为 Tyrannosaur 同时实现 Animal,所以该类还有第二个接口(其名为 Animal)。
不过,在它的所有底层,对象仍然是 Tyrannosaur。将一个命令按钮放置到“Form1”上,并添加下面的代码:
Private Sub Command1_Click()
Dim ty As Tyrannosaur
Dim anim As Animal
Set ty = New Tyrannosaur
Set anim = ty
MsgBox TypeName(anim)
End Sub
可能期望信息框显示 "Animal",但是,事实上显示的是 "Tyrannosaur"。
查询接口
当把 Tyrannosaur 对象赋给 Animal 类型的变量时,Visual Basic 将询问该 Tyrannosaur 对象它是否支持 Animal 接口。(为此所用的方法为 QueryInterface,或者简称 QI;有时可能遇到 QI 作为动词使用。)如果回答是否定的,将会产生错误。
如果回答是肯定的,该对象将被赋给变量。只有通过这个变量 Animal 接口的方法和属性才可被访问。
类属对象变量和接口
如果将对象引用赋给类属对象变量,(如下列代码所示),将会出现什么情况?
Private Sub Command1_Click()
Dim ty As Tyrannosaur
Dim anim As Animal
Dim obj As Object
Set ty = New Tyrannosaur
Set anim = ty
Set obj = anim
MsgBox TypeName(obj)
End Sub
结果得到另一个 Tyrannosaur。现在,通过变量 obj 调用属性和方法时,得到什么接口?将下面的方法添加到 Tyrannosaur 类中:
Public Sub Growl()
Debug.Print "Rrrrrr"
End Sub
Growl 方法属于 Tyrannosaur 对象的缺省接口。在命令按钮的 Click 事件的代码中,用下面的两行代码来取代 MsgBox 语句:
obj.Move 42
obj.Growl
当运行这个工程并单击按钮时,执行将在 Growl 方法上停止,并返回错误信息“对象不支持此属性或方法”。很明显,接口仍然是 Animal。
Object 类型的变量和具有多重接口的对象一起使用时,必须记住某些事情。该变量将访问的接口是最后赋值的接口。例如:
Private Sub Command1_Click()
Dim ty As Tyrannosaur
Dim anim As Animal
Dim obj As Object
Set ty = New Tyrannosaur
Set anim = ty
Set obj = anim
obj.Move 42 '成功
obj.Growl '失败
Set obj = ty
obj.Move 42 '失败
obj.Growl '成功
End Sub
幸好,很少将这种比较慢的、后期绑定的 Object 数据类型和具有多重接口的对象一起使用。使用多重接口的一个主要原因是,通过多态可以得到前期绑定的好处。
其它接口源
Visual Basic 的类模块不是唯一的实现接口的源。可以实现类型库包含的各种接口,只要该接口支持 Automation。
如果有 Visual Basic 专业版或企业版,那么可以创建自己的抽象类的类型库。这些类型库可能在许多工程中用到,就象在《部件工具指南》中,“创建 ActiveX 部件”中的“部件设计的一般准则”中所描述的那样。
专业版和企业版在 Tools 目录都包括有 MkTypLib (Make Type Library) 实用工具。如果已经用 Microsoft Visual C++ 使用过该实用工具,就会发现这是创建接口的一条更适宜的途径。
在工程中使用接口
为了在工程中使用接口,可以在“工程”菜单上单击“引用”,打开“引用”对话框。如果类型库已经注册,那么它将出现在引用列表中,于是可以复选它。如果类型库不在该列表中,可以使用“浏览”按钮对它定位。
一旦有了对某个类型库的引用,就可以使用 Implements 来实现该类型库包含的任何 Automation 接口。
详细信息 并没有限制一定要实现为抽象接口。下面的“代码重用的许多(内部)方面”中描述了怎样实现一个接口,以及选择性地重用该接口提供的类的属性和方法。
ljk02079
2006-08-25
打赏
举报
回复
接口是什么
就是控件和外界交互的东东
比如常用的标签控件 如果它不给你一个Caption接口 你怎么能改变它的显示文字呢
viperstorm
2006-08-25
打赏
举报
回复
帮帮我吧.谢谢啦
hn123
2006-08-25
打赏
举报
回复
可以保证控件是没有问题的
---------------------
哈哈,才知道什么是晕。。。
-----------
www.vicmiao.com
努力就有美好时光!
viperstorm
2006-08-25
打赏
举报
回复
行了..原来是ocx控件给错了..唉!!结吧
viperstorm
2006-08-24
打赏
举报
回复
但现在的情况是我直接加入控件.然后在Form_load()里初始化控件时它说实时错误,我把程序在C#里写了一次,也是说内存出错.
可以保证控件是没有问题的.而我的调用代码也是没问题的.只是觉得没有对它的接口进行调用!@
pcwe2002
2006-08-24
打赏
举报
回复
控件的公用属性、方法和函数组成了他的接口。直接调用就可以了,如果你修改控件的时候改变了属性、方法或者函数的参数那么你也改变了控件的接口,控件将不能生成与原控件相兼容的控件
hn123
2006-08-24
打赏
举报
回复
由控件内部提供的函数,属性,方法和事件,可以由外部调用或引用.
--------------
www.vicmiao.com
努力就有美好时光!
viperstorm
2006-08-24
打赏
举报
回复
没人了????
Activex
控件
是什么?
很多朋友经常在使用浏览器浏览某些网页的时候,就会提示Activex
控件
被阻止,那么Activex
控件
到底是个什么?Activex
控件
被阻止会对电脑上网有影响吗? Activex
控件
是什么 ActiveX
控件
,简单的说,它就是IE浏览器的插件,例如IE的Flash播放器就是一个ActiveX
控件
。ActiveX存在明显的安全问题,因为它其实也是一种程序,如果安装了某个ActiveX
控件
,那这个
控件
就有权限在电脑上做很多事情,例如偷偷的监控你的网页浏览记录,在后台安装恶意程序,时不时在电脑上产生弹窗,甚至窃取帐
什么是OCX
控件
?注册它都有哪些作用?
当标准
控件
不能完全满足用户需求时,用户可以编写自己的
控件
插入到编程工具中使用,编写的
控件
就是OCX。现在网页中也可以嵌入OCX,并称其为ActiveX
控件
。目前可以编写OCX的工具包括VB、VC、Delphi。易语言也即将支持OCX。 OCX是一种COM
控件
,OCX通常所说ActiveX
控件
,COM的原理是
接口
与实现分离,为了标识每个OCX的
接口
,必须在注册表里注册该
控件
的 GUID码。这样使用
什么是
接口
?
什么是
接口
接口
就可以理解为 胶带 胶布 插口 提供转接的扣子,用来连接而开放的入口。它的存在是为了让两种事物连接在一起 描述如何让两种事物连接在一起的抽象 化事物 消防栓的供水口存在两种方向 1 利用
接口
,我们可以对一个封装好的整体进行操作,不仅仅是获取数据(前端说的可能偏向这个方面吧,从整体获取或者向整体提交数据),还可以对整体进行操作。平 常写的类也可以算是提供了
接口
,类是整体,类的成员函数就是
接口
。 2 利用
接口
整体可以调用不同的实例去使用其中具体的方法。
接口
是一个抽象
概念
,一般
ASP.NET中共有哪几种类型的
控件
?其中,HTML
控件
、HTML服务器
控件
和WEB服务器
控件
之间有什么区别
【考点】 ASP.NET中的
控件
类型理解。 【出现频率】 ★★★☆☆ 【解答】 ASP.NET的
控件
包括WEB服务器
控件
、WEB用户
控件
、WEB自定义
控件
、HTML服务器
控件
和HTML
控件
。HTML
控件
、HTML服务器
控件
和WEB服务器
控件
之间的区别如下所示。 qHTML
控件
:这完全是浏览器端的HTML标签
控件
,例如HTML中常见的单选框表单
控件
,其HTML代码如以下代码所示。 <...
接口
回调
自定义组件中的三种形式: //自定义组合
控件
//自定义view (继承原生的) //自定义的view (view) 1.
接口
回调:就是 通过
接口
来 调用
接口
中的方法;
接口
回调是指: 可以把使用实现了某一
接口
的类创建的对象的引用,赋给该
接口
声明的
接口
变量,那么该
接口
变量就可以调用被类实现的
接口
的方法。实际上,当
接口
变量调用被类实现的
接口
中的方法时,就是通知相应的对象调用
接口
...
COM/DCOM/COM+
863
社区成员
3,659
社区内容
发帖
与我相关
我的任务
COM/DCOM/COM+
VB COM/DCOM/COM+
复制链接
扫一扫
分享
社区描述
VB COM/DCOM/COM+
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章