显示 CoffeeMonitor 类的窗体
进程外部件既可以显示模式窗体,也可以显示无模式窗体。CoffeeMonitor 将首先演示这一点,因为结果也许会与期待的不同。
本主题的过程是往 CoffeeMonitor 类中添加 ShowForm 方法,加上使用该方法时需要的公共常数。
注意 本主题是逐步创建 ActiveX EXE 示例过程的一部分。选择“创建 ActiveX EXE 部件”,开始本主题。
要显示 CoffeeMonitor 类的窗体,请按照以下步骤执行:
在“工程资源管理器”窗口,双击“CoffeeMonitor”(或选中它,然后在“工程资源管理器”窗口的工具栏上单击“代码”按钮)来打开其代码窗口。
在声明段添加下述 Public Enum:
Option Explicit
Public Enum cfeModality
cfeModal = vbModal
cfeModeless = vbModeless
End Enum
在类模块中被声明成 Public 的枚举型被添加到部件的类型库中。它与在其中定义它的类没有联系,但会成为全局名空间的一部分。
当 Visual Basic 包含 vbModal 和 vbModeless 时,为什么还要提供自己的常数呢?这些部件也许和不提供这些常数的开发工具一起使用。提供与 Visual Basic 兼容的常数是灵活的解决方案。
注意 在常数名前放置前缀“cfe”表示该常数属于 Coffee 部件,并减少了与其它部件的命名冲突。一些部件作者在前缀后采用两到三个大写字母来表示 Enum 型;在这则显得有些冗余。请参阅“部件设计的一般准则”中的“给部件提供命名的常数”。
在“工具”菜单上,单击“添加过程”打开“添加过程”对话框。在“名称”框中键入 ShowForm,单击“子程序”和“公共的”,然后单击“确定”。
在公共属性过程定义属性的同时,类模块中的公共子过程或函数过程定义类的方法。请参阅“部件设计的一般准则”中的“给类添加属性和方法”。
往子过程中添加下列代码:
Public Sub ShowForm(Optional Modality As _
cfeModality = cfeModal)
Dim frm As New TestForm
If Modality = cfeModeless Then
frm.Caption = "TestForm-Modeless"
Else
frm.Caption = "TestForm-Modeless"
End If
frm.Show Modality
End Sub
如果键入的选项参数 Modality 被省略,则表示是模式窗体。键入的选项参数在《Visual Basic 程序员指南》的“编程基础”中的“给过程传递参数”中讨论。
因为 cfeModality 中的常数与 Visual Basic 提供的 vbModal 和 vbModeless 常数兼容,所以可以简单地把 Modality 参数传递给窗体的 Show 方法。如果提供了无效值,则 Show 方法会自动引发一个错误。
在“文件”菜单上,单击“生成 Coffee.exe”创建引用执行程序。
引用执行程序只需生成一次,它会帮助测试应用程序与本工程保持连接。请参阅“调试、测试和部署部件”中的“为进程外部件创建测试工程”。
按 CTRL+F5 键运行工程。
注意 如果选中“选项”对话框的“通用”选项卡上的“请求时编译”(“选项”对话框可从“工具”菜单上得到),就应当用 Ctrl+F5(或选中“运行”菜单上的“全编译执行”)来确保部件在测试前已被完全编译。部件给测试程序提供对象之后发生的编译错误是很难处理的。默认选中请求时编译。
重点 在编辑或运行测试程序前必须把工程置成运行模式,这一点在的“调试、测试和部署部件”中的“为进程外部件创建测试工程”中讨论。