D E F I N E M E N U 命 令 - 图1返 回 总 目 录DEFINE MENU 命 令DEFINE PAD 命 令DEFINE POPUP 命 令DEFINE WINDOW 命 令

DefOLELCID 属 性DELETE 命 令DELETE-SQL 命 令

DELETE CONNECTION 命 令DELETE DATABASE 命 令DELETE FILE 命 令

DELETE TAG 命 令DELETE TRIGGER 命 令DELETE VIEW 命 令

DeleteColu m n 方 法Deleted 事 件DELETED( ) 函 数

DeleteMark 属 性

DESCENDING( ) 函 数

Description 属 性

Desktop 属 性

Destroy 事 件

_DIARYDATE 系 统 变 量DIFFERENCE( ) 函 数DIMENSION 命 令

DIR 或 DIRECTORY 命 令

DIRECTORY( ) 函 数

D isabledBackColor, DisabledForeColor 属 性

D isabledIte mBackColo r, D isabledIte mForeColor 属 性

D isabledPicture 属 性DISKSPACE( ) 函 数DISPLAY 命 令

DISPLAY CONNECTIONS 命 令DISPLAY DATABASE 命 令DISPLAY DLLS 命 令

DISPLAY FILES 命 令

D E F I N E M E N U 命 令

D E F I N E M E N U 命 令 - 图2创建菜单栏

语 法

DEFINE MENU MenuBarName

[BAR [AT LINE nRow ]]

[IN [WINDOW] W indowName | IN SCREEN]

[FONT cFontName [, nFontSize ]] [STYLE cFontStyle ]

[KEY KeyLabe l ]

[MARK cMarkCharacte r] [MESSAGE cMessageText ] [NOMARGIN]

[COLOR SCHEME nSchemeNumber

| COLOR ColorPairLis t]

参 数 描 述

MenuBarName

D E F I N E M E N U 命 令 - 图3D E F I N E M E N U 命 令 - 图4指 定 要 创 建 的 菜 单 栏 的 名 称 给 菜 单 栏 命 名 使 您 能 够 在 其 他 命 令 和 函 数 中 引用 该 菜 单 栏

BAR [AT LINE nRow ]

D E F I N E M E N U 命 令 - 图5D E F I N E M E N U 命 令 - 图6创 建 一 个 与 V isual FoxPro 系 统 菜 单 栏 类 似 的 菜 单 栏 该 菜 单 栏 有 以 下 特 征

  • D E F I N E M E N U 命 令 - 图7D E F I N E M E N U 命 令 - 图8

    平 菜 单 栏 的 高 度 为 一 个 行 高 宽 度 为 它 所 在 的 V isual FoxPro 主 窗 口 或用 户 自 定 义 窗 口 的 宽 度

  • D E F I N E M E N U 命 令 - 图9自 动

    处 理 菜 单 栏 上 菜 单 标 题 的 位 置

  • D E F I N E M E N U 命 令 - 图10D E F I N E M E N U 命 令 - 图11

    果 您 所 定 义 的 菜 单 标 题 的 大 小 与 数 目 超 出 了 菜 单 栏 所 在 的 屏 幕 或 窗 口 的大 小 可 以 滚 动 菜 单 栏

D E F I N E M E N U 命 令 - 图12行号用 nRow 指定

IN [WINDOW] W indowName

D E F I N E M E N U 命 令 - 图13在 用 户 自 定 义 窗 口 中 放 置 一 个 菜 单 栏 WindowName 指 定 用 户 自 定 义 窗 口

D E F I N E M E N U 命 令 - 图14D E F I N E M E N U 命 令 - 图15D E F I N E M E N U 命 令 - 图16D E F I N E M E N U 命 令 - 图17D E F I N E M E N U 命 令 - 图18D E F I N E M E N U 命 令 - 图19D E F I N E M E N U 命 令 - 图20名 如 果 省 略 IN WINDOW 除 非 有 一 个 活 动 的 用 户 自 定 义 窗 口 在 默 认 的情 况 下 菜 单 栏 放 置 在 主 窗 口 中 如 果 有 一 个 活 动 的 用 户 自 定 义 窗 口 菜 单栏 就 放 在 其 中

IN SCREEN

D E F I N E M E N U 命 令 - 图21在 V isual FoxPro 主 窗 口 中 放 置 菜 单 栏

FONT cFontName [, nFontSize ]

D E F I N E M E N U 命 令 - 图22为 菜 单 栏 中 所 有 的 菜 单 标 题 指 定 默 认 的 字 体 在 DEFINE PAD 中 包 含 F O N T

D E F I N E M E N U 命 令 - 图23子 句 可 以 改 写 单 个 菜 单 标 题 的 默 认 字 体

D E F I N E M E N U 命 令 - 图24D E F I N E M E N U 命 令 - 图25D E F I N E M E N U 命 令 - 图26D E F I N E M E N U 命 令 - 图27cFontName 指定字体名称 nFontSize 指定磅值 例如 下面的命令创建一个菜单栏

D E F I N E M E N U 命 令 - 图28它的菜单标题使用 12 磅 Courier 字体

DEFINE MENU mnu 示 例 FONT 'Courier', 12

D E F I N E M E N U 命 令 - 图29D E F I N E M E N U 命 令 - 图30D E F I N E M E N U 命 令 - 图31D E F I N E M E N U 命 令 - 图32如果在 FONT 子句中省略磅值 nFontSize 就使用 10 磅字体 如果指定的字体不可用就用相似的字体代替

D E F I N E M E N U 命 令 - 图33D E F I N E M E N U 命 令 - 图34添加到 Visual FoxPro 系统菜单 _MSYSMENU 中的菜单标题忽略 FONT 子句 注意菜单设计器使用的是 Visual FoxPro 系统菜单

STYLE cFontStyle

D E F I N E M E N U 命 令 - 图35D E F I N E M E N U 命 令 - 图36为 菜 单 栏 中 所 有 的 菜 单 标 题 指 定 一 个 默 认 的 字 形 在 DEFINE PAD 命 令 中 包含 STYLE 子 句 可 以 改 写 单 个 菜 单 标 题 的 默 认 字 形

D E F I N E M E N U 命 令 - 图37D E F I N E M E N U 命 令 - 图38D E F I N E M E N U 命 令 - 图39D E F I N E M E N U 命 令 - 图40D E F I N E M E N U 命 令 - 图41如果省略了 STYLE 子句 就使用常规字形 在 Visual FoxPro 中 如果指定的字形不可用 那么就用相似的字形代替

D E F I N E M E N U 命 令 - 图42下表列出了可以使用 cFontStyle 指定的字形

字 符 字 形

B 粗体

I 斜体

N 常规

Q 不透明

– 删除线

  1. 透明

  2. 下划线

D E F I N E M E N U 命 令 - 图43D E F I N E M E N U 命 令 - 图44D E F I N E M E N U 命 令 - 图45可以组合多个字符来指定一个字形 例如 下列命令指定粗斜体

DEFINE MENU mnuexample STYLE 'BI'

D E F I N E M E N U 命 令 - 图46D E F I N E M E N U 命 令 - 图47添加到 Visual FoxPro 系统菜单 _MSYSMENU 中的菜单标题忽略 STYLE 子句 注意菜单设计器使用的是 Visual FoxPro 系统菜单

KEY KeyLabel

D E F I N E M E N U 命 令 - 图48D E F I N E M E N U 命 令 - 图49D E F I N E M E N U 命 令 - 图50D E F I N E M E N U 命 令 - 图51指 定 用 于 激 活 菜 单 栏 的 键 或 组 合 键 有 关 可 用 键 或 组 合 键 以 及 它 们 的 键 标记 名 的 内 容 请 参 阅 ON KEY LABEL

D E F I N E M E N U 命 令 - 图52包含 KEY 子句等于使用了下列命令

ON KEY LABEL KeyLabel ACTIVATE MENU MenuName

D E F I N E M E N U 命 令 - 图53D E F I N E M E N U 命 令 - 图54D E F I N E M E N U 命 令 - 图55注 意 如 果 一 个 键 同 时 具 有 键 标 记 和 键 盘 宏 则 键 盘 宏 优 先 不 能 用 它 指 定 的 键或 组 合 键 来 激 活 菜 单 栏

M A R K cMarkCharacter

D E F I N E M E N U 命 令 - 图56D E F I N E M E N U 命 令 - 图57D E F I N E M E N U 命 令 - 图58D E F I N E M E N U 命 令 - 图59指 定 在 菜 单 栏 的 菜 单 标 题 左 端 出 现 的 标 记 字 符 可 以 使 用 M A R K 将 默 认 的标 记 字 符 改 为 用 cMarkCharacter 指 定 的 标 记 字 符 如 果 cMarkCharacter 包含 一 个 以 上 字 符 则 仅 有 第 一 个 字 符 用 作 标 记 字 符

D E F I N E M E N U 命 令 - 图60D E F I N E M E N U 命 令 - 图61D E F I N E M E N U 命 令 - 图62D E F I N E M E N U 命 令 - 图63D E F I N E M E N U 命 令 - 图64D E F I N E M E N U 命 令 - 图65D E F I N E M E N U 命 令 - 图66在 Visual FoxPro 中 默认的标记字符是对勾号 如果菜单栏是 Visual FoxPro 系统菜单 就忽略 MARK 子句 而使用默认的标记字符 如果菜单栏所在的 Visual FoxPro 主窗口或用户自定义窗口中的字体不是 FoxFont 则忽略 MARK 子句

D E F I N E M E N U 命 令 - 图67注 意 指 定 一 个 标 记 字 符 并 不 能 在 菜 单 栏 上 标 记 菜 单 名 可 使 用 S E T M A R K O F

D E F I N E M E N U 命 令 - 图68和 指 定 的 字 符 在 菜 单 栏 上 标 记 菜 单 标 题

D E F I N E M E N U 命 令 - 图69D E F I N E M E N U 命 令 - 图70D E F I N E M E N U 命 令 - 图71DEFINE PAD 指定的标记字符优先于 DEFINE MENU 中用 MARK 子句指定的标记字符 SET MARK OF 用来切换标记字符的打开或关闭 它也能用来为单个菜单项或所有的菜单项指定标记字符

MESSAGE cMessageText

D E F I N E M E N U 命 令 - 图72D E F I N E M E N U 命 令 - 图73D E F I N E M E N U 命 令 - 图74D E F I N E M E N U 命 令 - 图75D E F I N E M E N U 命 令 - 图76当 您 选 择 菜 单 标 题 时 显 示 一 条 信 息 在 V isual FoxPro 中 信 息 放 在 图 形 方 式状 态 栏 中 如 果 图 形 方 式 状 态 栏 被 SET STATUS BAR OFF 关 闭 信 息 就 显示 在 V isual FoxPro 主 窗 口 中 最 后 一 行 的 中 央

N O M A R G IN

D E F I N E M E N U 命 令 - 图77D E F I N E M E N U 命 令 - 图78默 认 情 况 下 删 除 每 个 菜 单 名 左 端 和 右 端 的 空 格

COLOR SCHEME nSchemeNumber

D E F I N E M E N U 命 令 - 图79为 单 个 菜 单 栏 指 定 颜 色

COLOR ColorPairList

D E F I N E M E N U 命 令 - 图80D E F I N E M E N U 命 令 - 图81D E F I N E M E N U 命 令 - 图82为 单 个 菜 单 栏 指 定 颜 色 默 认 情 况 下 菜 单 项 的 颜 色 由 当 前 颜 色 集 中 配 色 方案 2 决 定

D E F I N E M E N U 命 令 - 图83D E F I N E M E N U 命 令 - 图84D E F I N E M E N U 命 令 - 图85D E F I N E M E N U 命 令 - 图86有关颜色方案和颜色对的详细内容 请参阅稍前部分的 颜色概述

说 明

D E F I N E M E N U 命 令 - 图87D E F I N E M E N U 命 令 - 图88D E F I N E M E N U 命 令 - 图89D E F I N E M E N U 命 令 - 图90D E F I N E M E N U 命 令 - 图91使用 DEFINE MENU 为应用程序的菜单系统创建菜单栏 使用 DEFINE PAD 在菜单栏上创建菜单标题 使用 ON PAD ... ACTIVATE 指定在每个菜单标题下显示的菜单使用 DEFINE POPUP 在每个菜单标题下创建菜单 使用 ACTIVATE MENU 激活整个菜单系统

D E F I N E M E N U 命 令 - 图92D E F I N E M E N U 命 令 - 图93D E F I N E M E N U 命 令 - 图94D E F I N E M E N U 命 令 - 图95D E F I N E M E N U 命 令 - 图96如果使用菜单设计器创建菜单 就完全没有必要使用这些命令 菜单设计器自动地为菜单创建命令 菜单设计器使用 Visual FoxPro 系统菜单 您可以通过添加自己的菜单项更新它

D E F I N E M E N U 命 令 - 图97D E F I N E M E N U 命 令 - 图98D E F I N E M E N U 命 令 - 图99D E F I N E M E N U 命 令 - 图100D E F I N E M E N U 命 令 - 图101D E F I N E M E N U 命 令 - 图102D E F I N E M E N U 命 令 - 图103D E F I N E M E N U 命 令 - 图104有关创建菜单的详细内容 请参阅 Microsoft Visual FoxPro 6.0 中文版程序员指南第十一章 设计菜单和工具栏 中的 创建菜单系统

示 例

D E F I N E M E N U 命 令 - 图105D E F I N E M E N U 命 令 - 图106D E F I N E M E N U 命 令 - 图107以下示例使用 DEFINE MENU 命令创建用户自定义的菜单系统 首 先 使 用 SET SYSMENU SAVE 命令将当前系统菜单栏存入内存 然后使用 SET SYSMENU TO 命令清除系统菜单标题

D E F I N E M E N U 命 令 - 图108D E F I N E M E N U 命 令 - 图109D E F I N E M E N U 命 令 - 图110D E F I N E M E N U 命 令 - 图111D E F I N E M E N U 命 令 - 图112D E F I N E M E N U 命 令 - 图113D E F I N E M E N U 命 令 - 图114使用 DEFINE MENU 命令创建菜单栏 使用 DEFINE PAD 命令创建两个菜单标题DEFINE POPUP 为每个菜单标题创建菜单 DEFINE BAR 创建在每个菜单上的菜单项 当选择菜单标题时 ON PAD 使用 ACTIVATE POPUP 激活相应的菜单ACTIVATE MENU 显示并激活菜单栏

D E F I N E M E N U 命 令 - 图115D E F I N E M E N U 命 令 - 图116D E F I N E M E N U 命 令 - 图117当从菜单中选取菜单项时 执行 CHOICE 过程 CHOICE 显示已选取菜单项的名称和包含菜单项的菜单名

*** Name this program DEFIMENU.PRG ***

CLEAR

SET SYSMENU SAVE SET SYSMENU TO

D E F I N E M E N U 命 令 - 图118D E F I N E M E N U 命 令 - 图119D E F I N E M E N U 命 令 - 图120D E F I N E M E N U 命 令 - 图121D E F I N E M E N U 命 令 - 图122D E F I N E M E N U 命 令 - 图123D E F I N E M E N U 命 令 - 图124D E F I N E M E N U 命 令 - 图125D E F I N E M E N U 命 令 - 图126D E F I N E M E N U 命 令 - 图127D E F I N E M E N U 命 令 - 图128ON KEY LABEL ESC KEYBOARD CHR(13)

example D E F I N E M E N U 命 令 - 图129 D E F I N E M E N U 命 令 - 图130 D E F I N E M E N U 命 令 - 图131 1

DEFINE PAD convpad OF example PROMPT '\<Conversions' COLOR SCHEME 3 ; KEY ALT+C, ''

DEFINE PAD cardpad OF example PROMPT 'Card \<Info' COLOR SCHEME 3 ;

KEY ALT+I, ''

ON PAD convpad OF example ACTIVATE POPUP conversion ON PAD cardpad OF example ACTIVATE POPUP 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' ; KEY CTRL+I, '^I'

DEFINE BAR 7 OF conversion PROMPT 'Volu\<me' ;

KEY CTRL+M, '^M'

ON SELECTION POPUP conversion DO choice IN defimenu 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 ' ON SELECTION POPUP cardinfo;

DO choice IN defimenu WITH PROMPT( ), POPUP( )

ACTIVATE MENU example DEACTIVATE MENU example RELEASE MENU example EXTENDED SET SYSMENU TO DEFAULT

ON KEY LABEL ESC

PROCEDURE choice PARAMETERS mprompt, mpopup

WAIT WINDOW 'You chose ' + mprompt + ; ' from popup ' + mpopup NOWAIT

请 参 阅

ACTIVATE MENU , CNTPAD ( ) , CREATE MENU , DEACTIVATE MENU , DEFINE PAD , GETPAD( ) , HIDE MENU , MRKPAD( ) , ON PAD , O N SELECTION PAD, PRMPAD( ) , RELEASE MENU S , RELEASE PAD , SET M A R K O F , SET SYSMENU , S H O W M E N U