背景:                 
[本书目录] [图书首页] [本书讨论区]  
链接地址:http://www.17xie.com/read-59.html    注册17xie 一起来写书 实现您的出书梦想!

第八章  ActiveX控件与网络应用

Visual Basic的新增特性中,ActiveX控件是很重要的一部分。ActiveX控件通常用于针对网络的设计,所以也被称为网络控件。利用ActiveX控件,不但可以在各个应用程序之间建立一种标准的通信机制,而且通过ActiveX控件制作的ActiveX文档可以在Internet上发布。

从本质上说前面几章中介绍的CommandButton控件、TextBoxTimer等控件都是ActiveX控件,在本章中所指的ActiveX控件主要是用户自己定制的ActiveX控件,同时还要向用户介绍ActiveX控件在网络上应用——ActiveX文档和网络浏览器的制作等。

8.1  定制ActiveX控件

在本节中将向用户介绍如何在Visual Basic 中定制一个符合自己需要的ActiveX控件,示例Activex控件可以把普通的CommandButton控件和Timer控件结合起来,即可以在程序运行的过程中通过设置ActiveX控件的Interval属性来激活计时器事件,具体的程序设计步骤如下所示。

1.开始工作

首先启动一个新的Visual Basic项目,在弹出的“新建工程”对话框中选择“标准EXE”选项,如图8-1所示。

8-1  “新建工程”对话框

在“新建工程”对话框中选择“ActiveX控件”选项,单击“确定”按钮,在Visual Basic 就新建了一个ActiveX控件的工程文件,同时打开了一个空白的窗体,新建的ActiveX控件工程窗体如图8-2所示。

8-2  新建的ActiveX控件工程窗体

窗体的属性设置如表8-1所示:

8-1  窗体的属性设置

属性名

属性值

名称

UserControl1

ClientHeight

510

ClientLeft

0

ClientTop

0

ClientWidth

1950

ScaleHeight

510

ScaleWidth

1950

2.添加控件

向空白的窗体上添加一个Timer控件和一个CommandButton控件,其中CommandButton控件用来接受ActiveX控件的各种操作(如鼠标、键盘等),而Timer控件则用来帮助ActiveX控件产生计时器事件,两个控件的属性设置如下代码所示。

   Begin Visual Basic .Timer Timer1

         Interval      =       500

         Left   =       1440

         Top  =       0

   End

   Begin Visual Basic .CommandButton Command1

         Caption      =       "Command1"

         Height        =       495

         Left   =       0

         Style =       1

         TabIndex    =       0

         Top  =       0

         Width         =       1935

   End

添加CommandButton控件和Timer控件后的窗体如图8-3所示。

8-3  添加CommandButton控件和Timer控件后的窗体

3.添加代码

ActiveX控件设计的过程中,用鼠标左键双击窗体上的空白处,在弹出的代码窗口中把光标移动到事件Private Sub UserControl_Initialize()的处理过程中,并且添加如下所示的ActiveX控件初始化代码。

Private Sub UserControl_Initialize()

   UserControl.Command1.Enabled = True

   UserControl.Timer1.Enabled = True

   '设置控件有效状态

   UserControl.Command1.Caption = Year(Date) & ":" & Month(Date) & ":" & Day(Date)

   '显示当前日期

   UserControl.Command1.Left = 0

   UserControl.Command1.Top = 0

   '初始化控件位置

   UserControl.Command1.Width = UserControl.Width

   UserControl.Command1.Height = UserControl.Height

   '初始化控件大小

End Sub

提示:

@        ActiveX控件加载的初期,窗体Private Sub UserControl_Initialize()事件中的代码就会被执行。

程序首先通过UserControl.Command1.Enabled = TrueUserControl.Timer1.Enabled= True语句设置ActiveX控件中的两个子控件的有效状态,然后设置了CommandButton控件的显示文本为系统当前的日期,最后通过四条语句对ActiveX控件的大小和位置进行了设置。

经过以上初始化后的ActiveX控件测试结果如图8-4所示。

8-4  初始化设置后的ActiveX控件

注意:

@        ActiveX控件的设计过程中,值得注意的一点就是要对控件的尺寸改变做出正确的判断和处理,由于ActiveX控件的设计都是依赖于一定的窗体(本示例程序中为UserControl窗体)。

所以要在窗体的Private Sub UserControl_Resize()事件中添加对控件尺寸改变的响应代码(本程序中的响应代码如下所示)。

Private Sub UserControl_Resize()

   UserControl.Command1.Left = 0

   UserControl.Command1.Top = 0

   '设置控件位置

   UserControl.Command1.Width = UserControl.Width

   UserControl.Command1.Height = UserControl.Height

   '设置控件大小

End Sub

程序说明:

ActiveX控件运行的过程中,如果ActiveX控件所在窗体的尺寸发生改变,就会激活Private Sub UserControl_Resize()事件,然后程序通过语句UserControl.Command1.Left=0UserControl.Command1.Top=0来设置ActiveX控件的位置,之后再通过两条语句:

UserControl.Command1.Width=UserControl.Width

UserControl.Command1.Height=UserControl.Height

来设置ActiveX控件大小,这样,ActiveX就能够实现跟踪尺寸改变的功能了。

另外为了能够在程序运行的过程中ActiveX控件能够自动的判断自身可见状态,需要添加如下所示代码。

Private Sub UserControl_Show()

MsgBox "ActiveX控件处于可见状态"

End Sub

Private Sub UserControl_Hide()

MsgBox "ActiveX控件处于不可见状态"

End Sub

4.设计ActiveX控件

以上进行的工作是手动的,下面利用Visual Basic 6提供的Visual Basic  ActiveX控件界面向导程序来生成基本的ActiveX外壳(如属性、事件和方法等)。

用鼠标选择菜单“工程”中的“添加用户控件”选项,就会弹出一个如图8-5所示的“添加用户控件”对话框。

8-5  “添加用户控件”对话框

在“添加用户控件”对话框中选择“Visual Basic  ActiveX控件界面向导”选项,单击“打开”按钮就会激活Visual Basic 6ActiveX控件界面向导,并且弹出一个如图8-6所示的“ActiveX控件接口向导-介绍”对话框。


字数:4875    最后更新:1年以前 [08-29 14:15]我爱钱 修改
本页编辑者:我爱钱  
[前一页]:第七章  [后一页]:第八章
[在本页中加入书签] [收藏本书] [推荐本书]
  17xie论坛 > 本书讨论区 > 本页评论   (共0条)
发表评论

用户名称 匿名发表
评论内容
验证码

关于我们 | 版权声明 | 免责声明 | 诚聘英才 | 联系我们 | 合作伙伴 | 友情链接 | 广告合作 | 提交意见
Copyright © 2007 17xie.com 互联网协同写书平台 京ICP备08002671号