commandtargetexec 事件

应用于 请参阅

当 Active Document 的宿主应用程序通知 Active Document 要执行的命令时发生。

语法

PROCEDURE Object.CommandTargetExec
[LPARAMETERS n命令ID, nExecOption, eArgIn, eArgOut]

参数

nCommandID

是 Active Document 的宿主应用程序向 commandtargetexec 事件传递的一个参数,该参数指出了要执行的命令。下表列出了向 Visual FoxPro 可处理事件传递的值,以及要执行的相应命令。

nCommandID FOXPRO.H 常数 命令
1 CMDID_OPEN “文件”菜单的“打开”命令。
2 CMDID_NEW “文件”菜单的“新建”命令。
3 CMDID_SAVE “文件”菜单的“保存”命令。
4 CMDID_SAVEAS “文件”菜单的“另存为”命令。
5 CMDID_SAVECOPYAS “文件”菜单的“将复本保存为”命令。
6 CMDID_PRINT “文件”菜单的“打印”命令。
7 CMDID_PRINTPREVIEW “文件”菜单的“打印预览”命令。
8 CMDID_PAGESETUP “文件”菜单的“页面设置”命令。
9 CMDID_SPELL “工具”菜单的“拼写检查”命令。
10 CMDID_PROPERTIES “文件”菜单的“属性”命令。
11 CMDID_CUT “编辑”菜单的“剪切”命令。
12 CMDID_COPY “编辑”菜单的“复制”命令。
13 CMDID_PASTE “编辑”菜单的“粘贴”命令。
14 CMDID_PASTESPECIAL “编辑”菜单的“选择性粘贴”命令。
15 CMDID_UNDO “编辑”菜单的“取消”命令。
16 CMDID_REDO “编辑”菜单的“重复”命令。
17 CMDID_SELECTALL “编辑”菜单的“全选”命令。
18 CMDID_CLEARSELECTION “编辑”菜单的“清除”命令。
19 CMDID_ZOOM “视图”菜单的“显示比例”命令。
20 CMDID_GETZOOMRANGE 获取“视图”菜单的“显示比例”命令适用的缩放范围。
21 CMDID_UPDATECOMMANDS 通知 ActiveDocument 状态的改变。
22 CMDID_REFRESH 请求 ActiveDocument 刷新它的显示。由 ActiveDocument 完成。
23 CMDID_STOP 请求 ActiveDocument 停止它的处理。
24 CMDID_HIDETOOLBARS 请求 ActiveDocument 隐藏工具栏。由 ActiveDocument 完成。
25 CMDID_SETPROGRESSMAX 设置进程指示器的最大值。
26 CMDID_SETPROGRESSPOS 设置进程指示器的当前值。
27 CMDID_PROGRESSTEXT 设置进程指示器中包含的文本。
28 CMDID_SETTITLE 设置标题栏文本。
29 CMDID_DOWNLOADSTATE 当宿主程序下载状态更改时发送。
30 CMDID_STOPDOWNLOAD 当执行时停止下载。
31 CMDID_ONTOOLBARACTIVATED 容器的一个工具栏获得了焦点。
36 CMDID_ENABLE_INTERACTION 由 Active Document宿主应用程序发送,告诉 ActiveDocument 或者暂停或者重新开始 ActiveDocument 中的任何多媒体(音频或动画)。如果在 ActiveDocument 一个控件中运行的多媒体文件应该重新开始,则 eArgIn 返回“真”(.T.),如果该多媒体文件应该暂停,则 eArgIn 返回“假”(.T.)。Internet Explorer 4.0使用这个命令,当一个 Active Document最小化或完全被另一个窗口覆盖时通知该Active Document,这样该 ActiveDocument 可以暂停播放多媒体信息。
37 CMDID_ONUNLOAD 当定位到另一个站点之前,或 ActiveDocument 宿主关闭之前由该宿主程序发送。将 eArgOut设置为“假” (.T.)可以防止一个 ActiveDocument 被它的宿主程序关闭。将eArgOut 设置为“真” (.T.),可以允许一个 ActiveDocument 由它的宿主程序关闭。

nExecOption

传递给 CommandTargetExec 事件的应该参数,表明指定命令所需的默认动作。

下表列出了 nExecOption 的值,以及要执行的动作。

nExecOption FOXPRO.H 常量 动作
0 CMDEXECOPT_DODEFAULT 使用默认的行为,提示或不提示用户输入。
1 CMDEXECOPT_PROMPTUSER 当获得用户输入之后执行命令。
2 CMDEXECOPT_DONTPROMPTUSER 执行命令而不提示用户。例如,单击“打印”工具栏按钮,会立即打印一篇文档,而不需用户的输入。
3 CMDEXECOPT_SHOWHELP 显示相应命令的帮助信息,而实际不执行该命令。

eArgIn

从 Active Document 宿主程序传递到 commandtargetexec 事件的参数。通常,这个参数是 null 值,当 nCommandID 是 36 时例外。当 nCommandID是 36 时,eArgIn 包含一个值。有关传递给 eArgIn 的逻辑值的详细内容,请参阅 nCommandID 参数说明中的表格。

eArgOut

从 commandtargetexec 事件返回给 Active Document 宿主程序的一个输出参数。通常,这个参数是 null 值,当 nCommandID 是 37 时例外。当nCommandID 是 37 时(表明 Active Document 宿主程序将要关闭 ActiveDocument 或定位到另一个站点),可以将 eArgOut 设置为“假” (.T.),以防止 Active Document 被宿主程序关闭。将 eArgOut 设置为“真” (.T.),可以允许 Active Document 被宿主程序关闭。

说明

commandtargetexec 事件允许 Active Document 根据宿主程序发送的命令执行自定义动作。这些命令可能是由于响应用户选择一个菜单项或工具栏项而发送的,或者是由于触发了 Active Document 宿主程序中的一个事件而发送的。从 CommandTargetExec事件的返回值会通知 Active Document 宿主程序您是否处理过该命令。如果您没有处理过该命令,Active Document 宿主程序会执行该命令默认的过程。

下表列出了从 commandtargetexec 事件返回的值。

返回值 FOXPRO.H 常量 命令动作
0 CMD_OK

Active Document 处理了该命令。当 Active Document 曾经处理了由nCommandID 指定的命令时返回该值。例如,如果选择了宿主程序中“文件”菜单中的“打开”命令,则您的 Active Document 可以在commandtargetexec 事件中确定nCommandID 为 1,然后执行自己的打开文件例程,可能是使用 Visual FoxPro GETFILE( )函数。

2 CMD_NOTSUPPORTED Active Document 不支持该命令。Active Document 不支持该命令。当Active Document 不能识别nCommandID 指定的命令时,返回这个值。
3 CMD_DISABLED Active Document 废止了该命令。当 nCommandID 指定的命令正被废止时,或 Active Document 不能执行该命令时,返回这个值。
4 CMD_NOHELP Active Document 没有该命令的帮助信息。当 Active Document 没有 nCommandID指定的命令的帮助信息时,返回这个值。
5 CMD_CANCELED 用户取消了该命令的执行。当 Active Document 试图处理nCommandID 指定的命令而用户取消了该操作时,返回这个值。

Active Document 不支持该命令。当 Active Document 不能识别 nCommandID 指定的命令时,返回这个值。

对于 CommandTargetExec 和 CommandTargetQuery 事件,Visual FoxPro 利用IoleCommandTarget 接口。有关这些事件是如何实施的详细信息,可以在 MSDNlibrary 中搜索 IoleCommandTarget。