当 Active Document 宿主程序更新自己的用户界面时发生该事件。
语法
PROCEDURE Object.CommandTargetQuery
[LPARAMETERS aCommands, nCommandTextFlag, cCommandTextOut]
参数
aCommands
一个二维数组,其中包含一组 Active Document 宿主程序支持的命令。数组的第一列包含一些对应于 Active Document 宿主程序支持的命令的数值。有关命令列表和数值的详细内容,请参阅 CommandTargetExec 事件中的nCommandID 参数。
数组的第二列包含一些对应于每个命令的支持状态的数值。下表列出了第二列包含的数值,以及相应的每个命令的支持状态。
值 | FOXPRO.H 常量 | 说明 |
0 | CMDF_NOTSUPPORTED | 该对象不支持该命令。 |
1 | CMDF_SUPPORTED | 该对象支持该命令。 |
2 | CMDF_ENABLED | 该命令可用而且已经启用。 |
4 | CMDF_LATCHED | 该命令可以开关切换,而且目前是打开的。 |
8 | CMDF_NINCHED | 该命令可以开关切换,但是由于在相关选择中,该命令的属性处于既开又关状态,所以该命令的状态无法确定。例如,这种状态对应于三种状态复选框的“不明状态”。 |
数组的第二列对于每个命令,初始都包含零。事件代码应该在第二列包含一个数值,以表明 Active Document 对每个命令的支持状态。可以任意组合这些值,以指定附加的支持级别。例如,一个命令支持 (1) 您的 ActiveDocument 过程,而且可用并启用了 (2),则可以在相应命令的第二列保存 3(1 + 2)。
nCommandTextFlag
从 Active Document 宿主程序传递到 CommandTargetExec 事件的一个参数。nCommandTextFlag 表明了通过 cCommandTextOut 参数传递给 ActiveDocument 宿主程序的命令信息的类型。下表列出了 nCommandTextFlag 的值,以及相应的传递给 Active Document 宿主程序的命令信息。
nCommandTextFlag | 命令信息 |
0 | 不需要额外信息。 |
1 | Active Document 应该提供命令的本地名称。 |
2 | Active Document 应该提供命令的本地状态栏字符串。 |
cCommandTextOut
从 CommandTargetExec 事件传递给 Active Document 宿主程序的一个参数。cCommandTextOut 是为一个命令显示的文本,通常显示在 Active Document宿主程序的状态栏。cCommandTextOut 适用于数组中第一列的命令。
说明
commandtargetquery 事件允许通知一个 Active Document 的宿主程序,该 ActiveDocument 支持哪些命令,而且每个命令可用的支持类型。也可以指定当选中一个命令(通常是一个菜单项)时显示的文本。
对于 CommandTargetExec 和 commandtargetquery 事件,Visual FoxPro 利用IOleCommandTarget 接口。有关这些事件是如何实施的详细信息,可以在 MSDNlibrary 中搜索 IOleCommandTarget。
注意,Internet Explorer 3.0 和 4.0 通常不需要 cCommandTextOut 的命令文本。因此,nCommandTextFlag 通常为零,而且 cCommandTextOut 通常包含 null 值。包含这些参数,以便将来与 IOleCommandTarget 接口兼容,而且在您的应用程序中可以安全地忽略它们。