通知 Microsoft Visio 实例,客户端代码正在使该实例进入或退出特定状态。
语法
表达式。OnComponentEnterState (uStateID, bEnter)
expression:表示 Application 对象的变量。
参数
| 名称 | 必需/可选 | 数据类型 | 说明 |
|---|---|---|---|
| uStateID | 必需 | VisOnComponentEnterCodes | 描述正在进入或退出的状态以及影响处于指示的状态时的行为的标志。 |
| bEnter | 必需 | Boolean | True 指示正在进入某种状态;False 指示正在退出某种状态。 |
返回值
Nothing
注解
uStateID 参数指示正在进入或退出的状态。 调用此方法的代码在进入和退出该状态时都应该这样做。
目前,OnComponentEnterState 方法支持的唯一状态更改是 visComponentStateModal,它指示客户端正在执行使 Visio 进入或退出一种模式状态的动作。
当使 Visio 进入或离开模式状态时(例如显示模型对话框时),大多数客户端代码无需调用 OnComponentEnterState 方法。 通常,客户端代码在显示非 Microsoft Visual Basic for Applications (VBA) 窗体的对话框并且要求不同于 Visio 默认行为的行为时会使用此方法。
下面是 uStateID 的常量和值,它们由 Visio 类型库在 VisOnComponentEnterCodes 中声明。 以下任何以 visModal 为前缀的常量都可以与 visComponentStateModal 组合,以影响 Visio 在转换到模式状态或从模式状态转换时的行为。
| 常量 | 值 | 说明 |
|---|---|---|
| visComponentStateModal | 1 | 正在标识的状态是一种模式状态。 |
| visModalDeferEvents | &H10000 | 导致 Visio 在模式时尝试延迟触发事件。 默认情况下,Visio 在显示自己的对话框时会延迟触发事件,但在客户端代码导致出现对话框时不会延迟触发事件。在多个嵌套模式作用域的情况下,如果任何作用域正在延迟事件,则延迟事件的最外层作用域中的所有作用域都将延迟事件。此标志仅在 Visio 进入模式作用域时有效。 退出模式作用域时,Visio 的行为与进入作用域时相同。 |
| visModalNoBeforeAfter | &H20000 | 阻止 Visio 在进入模式范围时触发 BeforeModal 事件,或者阻止 Visio 在离开模式范围时触发 AfterModal 事件。默认情况下,Visio 在显示自己的对话框或显示由 VBA 实现的对话框时将触发这些事件,但是当客户端代码显示对话框时不会触发这些事件。调用 OnComponentEnterState 方法将导致触发这些事件,除非指定了 visModalNoBeforeAfter。 |
| visModalDontBlockMessages | &H40000 | 阻止 Visio 在模式时拒绝来自其主线程外部的调用。 默认情况下,Visio 在模式时拒绝来自其线程外部的调用。在多个嵌套模式作用域的情况下,如果任何作用域正在延迟事件,则延迟事件的最外层作用域中的所有作用域都将延迟事件。此标志仅在 Visio 进入模式作用域时有效。 退出模式作用域时,Visio 的行为与进入作用域时相同。 |
| visModalDisableVisiosFrame | &H80000 | 导致 Visio 在模式时禁用其框架窗口。 默认情况下,Visio 在显示其自己的对话框或显示 VBA 实现的对话框时禁用其框架窗口,但在另一个进程中的客户端代码显示对话框时不禁用。如果另一个进程中的代码想要显示对话框,并使 Visio 框架窗口的行为就像显示对话框的 Visio 进程一样,它可以设置此标志。仅当 Visio 进入模式范围时,此标志才起作用。 退出模式作用域时,Visio 的行为与进入作用域时相同。 |
支持和反馈
有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。