您的位置:学习中国 推荐教程 VB编程 正文
原作者:kuku 添加时间:2007-06-02 原文发表:2007-06-02 人气:93 来源:互联网

本文章共3891字,分3页,当前第1页,快速翻页:
 

深圳 罗汉军 罗德昌
熟悉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对象
 
本文章更多内容1 - 2 - 3 - 下一页>>
本页地址
相关文章

VB5实现窗口图像缩放、滚动技巧
VB5.0中实现字体闪烁效果
VB5.0中基于桌面的屏幕技巧
VB5.0下工具条的制作
VB 5.0中实现鼠标拖放
Office或IE4风格的ToolBar
Cool 3D 浮動按鈕的模擬作法
用VB做个漂亮的进度条
用VB设计聚焦框程序
用VB6实现动态增减控件
VB6制作Win98风格的工具栏
VB编程步步高-表单篇
VB编程常见问题
VB编程中如何锁定鼠标
VB编程中如何锁定鼠标
VB创建位图菜单
VB的OPEN对话框控件图示功能扩充
VB实现按钮浮动效果
VB实现窗口的弹出式菜单
VB应用程序中的工具提示和状态显示

相关评论


本文章所属分类:首页 推荐教程 VB编程   VB编程