如何在 VB6 中编写可更新的 Web 页面 ActiveX 控件






4.25/5 (16投票s)
2004年9月10日
3分钟阅读

175329

3263
本文将介绍如何编写一个可嵌入到网页中使用的 ActiveX 控件,该控件可以从网页更新和重新安装。
引言
很多时候,你可能需要在你的 Web 应用程序中使用一个强大的基于 COM 的控件,该控件可能需要在以后进行修改。在某些情况下,简单地引用 .ocx 文件就足够了 (<OBJECT CODEBASE="myActiveXcontrol.ocx" />
)。但是,如果需要修改控件的代码并在用户的机器上重新安装,此方法将不起作用。
相反,更好的方法是利用 Visual Studio 的打包和部署向导来创建一个 CAB 文件,该文件用作 <object>
标签中引用的 .ocx 的直接安装(或重新安装)。
步骤 1:在 Visual Basic 中创建控件
作为一个例子,我们将首先在 VB 6.0 中创建一个简单的控件。
打开 MS Visual Basic,然后选择“ActiveX”控件
然后,我在我的控件上放置了两个组件 - 一个名为 cmdTest
的命令按钮和一个名为 txtTest
的文本框
(这是一个非常简单的例子,只是为了展示 Web 客户端脚本如何与嵌入式 ActiveX 控件交互)。
接下来,我们将编写一些代码来测试我们的功能。我们的目标是从我们的网页向文本框传递一个值,然后使用命令按钮在消息框中显示该文本。我们将需要 _click()
的代码和一个 Public
函数来填充文本框(我们需要它是 public
,以便可以从 VB 控件的范围之外访问它,即网页代码)。我使用函数 setText()
来完成此操作
Public Function setText(txt As String)
txtTest.Text = txt
End Function
Private Sub cmdTest_Click()
MsgBox txtTest.Text
End Sub
步骤 2:打包项目
接下来,我们需要保存、生成和打包我们的项目。我的项目名为 vbActiveX,我的控件名为 ctlVBAX
。单击“工具”-->“打包和部署向导”。在主屏幕上单击打包。(它可能会要求你重新编译和/或保存你的项目。只需单击是。)
按照屏幕截图进行操作
你的包现在应该存在于你的项目文件夹中的 /Package 中。
步骤 3:编写网页代码
我们的最后一步包括在我们的网页上添加客户端脚本,以及一些 HTML 以与嵌入式 ActiveX 控件交互。
我只是创建了一个名为 "drpValues
" 的下拉列表,并给出了选项 "value1"-"vaue5"。我们的目标是用从下拉列表中选择的值来填充 AX 控件(txtTest
)上的文本框。我们将需要添加一个 JavaScript 函数来完成此操作
<select id="drpValues" onclick="send_value(this)">
<option value=""></option>
<option value="value1">value1</option>
<option value="value2">value2</option>
<option value="value3">value3</option>
<option value="value4">value4</option>
<option value="value5">value5</option>
</select>
<--this goes into the <head></head> section-->
<script>
function send_value(obj){
document.all('ctlVBAX').setText(obj.options[obj.selectedIndex].value);
}
</script>
请注意 <object>
标签及其内容
<OBJECT ID="ctlVBAX"
CLASSID="CLSID:748FEF73-28D1-4889-A582-E5F8F526CDD1"
CODEBASE="vbActiveX.CAB#version=1,0,0,0">
</OBJECT>
如你所见,对象 ID 是 ctlVBAX
,这是我们在脚本中使用时所引用的。另请注意,CODEBASE
部分包含 .CAB 文件,而不是 .ocx 文件,因此系统会查找 CAB 的版本来初始化 ActiveX 控件。如果它是一个较新的版本,它将更新控件,几乎就像重新安装一样。
通过在 /Package 文件夹中打开 vbActiveX.HTM 来测试该页面。
要测试更新,请更改 ActiveX 控件代码中的一些内容,然后重新生成项目(文件->生成)。然后,将新的 .ocx 从你的主项目文件夹复制到 /support 目录中,并使用那里的批处理文件在 /Package 中重新生成 CAB 文件。最后,将该 CAB 文件复制回你的项目文件夹,然后重新打开该网页。你应该注意到更改已生效。