ACTIVATE POPUP 命 令
显示并且激活一个菜单
语 法
ACTIVATE POPUP MenuName
[AT nRow , nColum n ] [BAR nMenuItemNumber ] [NOWAIT]
[REST]
参 数 描 述
MenuName
指 定 要 激 活 的 菜 单 的 名 称
AT nRow , nColumn
指 定 菜 单 在 屏 幕 或 用 户 自 定 义 窗 口 中 显 示 的 位 置 行 和 列 的 坐 标 值 为 菜 单 左上 角 的 坐 标 值 用 此 参 数 确 定 的 位 置 优 先 于 DEFINE POPUP 命 令 的 FROM 参 数 指 定 的 位 置
BAR nMenuItemNumber
指 定 菜 单 激 活 后 自 动 选 定 的 菜 单 项 例 如 如 果 nMenuItemNumber 为 2 则菜 单 激 活 后 将 自 动 选 择 第 二 个 菜 单 项 如 果 省 略 参 数 B A R nMenuItemNumber 或 者 nMenuItemNumber 的 数 值 大 于 菜 单 中 的 项 数 则 菜单 激 活 后 将 选 择 第 一 个 菜 单 项
NOWAIT
指 定 程 序 运 行 时 不 等 待 用 户 选 择 菜 单 项 而 是 继 续 执 行 程 序
REST
如 果 DEFINE POPUP 命 令 中 带 有 PROMPT FIELD 子 句 则 它 所 创 建 菜 单 的各 项 就 是 每 个 记 录 指 定 字 段 的 内 容 此 菜 单 激 活 时 即 使 包 含 此 字 段 的 表 的记 录 指 针 没 有 指 向 第 一 个 记 录 初 始 时 还 是 选 定 第 一 个 菜 单 项
包含 REST 选项 则指定此菜单激活时选定与表中当前记录指针相对应的项
说 明
ACTIVATE POPUP 与 DEFINE POPUP 命令结合使用 用于创建菜单 而 DEFINE BAR 命令则用于创建菜单中的菜单项
示 例
这个示例在选择一个菜单标题后 用 ACTIVATE POPUP 命令激活菜单 首先 用 SET
SYSMENU SAVE 命令 将 当前系统菜单栏存入内存 然后用 SET SYSMENU TO 命令删除所有系统菜单标题
用 DEFINE PAD 命令创建两个新的系统菜单标题 并且用 DEFINE POPUP 命令为每
一个菜单标题创建一个菜单 再用 DEFINE BAR 命令为每个菜单创建菜单项 当选择一个菜单标题后 ON PAD 命令通过 ACTIVATE POPUP 子句激活相应的菜单
从菜单中选择某个菜单项后 将执行 CHOICE 过程 CHOICE 过程将显示选定的菜单项名和对应菜单名 如果从 Card Info 菜单中选择 Exit 菜单项 将恢复为原来的 Visual FoxPro 系统菜单
*** 命名此程序为 ACTIPOP.PRG ***
CLEAR
SET SYSMENU SAVE SET SYSMENU TO
DEFINE PAD convpad OF _MSYSMENU PROMPT '\<Conversions' COLOR SCHEME 3 ;
KEY ALT+C, ''
DEFINE PAD cardpad OF _MSYSMENU PROMPT 'Card \<Info' COLOR SCHEME 3 ; KEY ALT+I, ''
ON PAD convpad OF _MSYSMENU conversion
ON PAD cardpad OF _MSYSMENU cardinfo DEFINE POPUP conversion MARGIN RELATIVE COLOR SCHEME 4 DEFINE BAR 1 OF conversion PROMPT 'Ar\<ea' KEY CTRL+E, '^E' DEFINE BAR 2 OF conversion PROMPT '\<Length' ;
KEY CTRL+L, '^L'
DEFINE BAR 3 OF conversion PROMPT 'Ma\<ss' ; KEY CTRL+S, '^S'
DEFINE BAR 4 OF conversion PROMPT 'Spee\<d' ; KEY CTRL+D, '^D'
DEFINE BAR 5 OF conversion PROMPT '\<Temperature' ; KEY CTRL+T, '^T'
DEFINE BAR 6 OF conversion PROMPT 'T\<ime' ; KE Y CTRL+I, '^I'
DEFINE BAR 7 OF conversion PROMPT 'Volu\<me' ;
KEY CTRL+M, '^M'
ON SELECTION POPUP conversion;
DO choice IN actipop WITH PROMPT(), POPUP()
DEFINE POPUP cardinfo MARGIN RELATIVE COLOR SCHEME 4
DEFINE BAR 1 OF cardinfo PROMPT '\<View Charges' ; KEY ALT+V, ''
DEFINE BAR 2 OF cardinfo PROMPT 'View \<Payments' ; KEY ALT+P, ''
DEFINE BAR 3 OF cardinfo PROMPT 'Vie\<w Users' ; KEY ALT+W, ''
DEFINE BAR 4 OF cardinfo PROMPT '\-'
DEFINE BAR 5 OF cardinfo PROMPT '\<Charges' ; KEY ALT+C, ''
DEFINE BAR 6 OF cardinfo PROMPT '\-' DEFINE BAR 7 OF cardinfo PROMPT 'E\<xit';
KEY ALT+X, ''
ON SELECTION POPUP cardinfo;
DO choice IN actipop WITH PROMPT(),POPUP()
PROCEDURE choice PARAMETERS mprompt, mpopup
WAIT WINDOW 'You chose ' + mprompt + ;
' from popup ' + mpopup NOWAIT IF mprompt = 'Exit'
SET SYSMENU TO DEFAULT
ENDIF
请 参 阅
CLEAR POPUPS , CREATE MENU , DEACTIVATE POPUP , DEFINE BAR , DEFINE POPU P , HIDE POPU P , MOVE POPUP , ON SELECTION POPUP , POP POPU P , POPUP , PROMPT , PUSH POPU P , SHOW POPUP