下面的示例使用 define bar 在菜单上创建菜单项。首先用 set sysmenu save 将当前的系统菜单存入内存,然后用 set
sysmenu to 将所有的系统菜单标题删除。先用 define pad 创建两个新的系统菜单标题,用 define popup
为每个菜单标题创建一个下拉菜单。然后用 define bar 创建每个菜单的菜单项。当选择一个菜单标题时,on pad 使用 activate popup 去激活相应的菜单。当从菜单上选择一个菜单项时,on selection popup 使用
prompt( ) 和 popup( ) 函数将菜单项号和菜单名传递给 choice 过程,choice 显示被选择的菜单项的提示符和包含该菜单项的菜单名。如果从 card info 中选择了 exit,则恢复最初的 visual foxpro 系统菜单。
*** 请将这个程序命名为 definbar.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 activate popup conversion
on pad cardpad of _msysmenu activate popup cardinfo
define popup conversion margin relative shadow 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 definbar with prompt( ), popup( )
define popup cardinfo margin relative shadow 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 '
define bar 6 of cardinfo prompt '\-'
define bar 7 of cardinfo prompt 'e\<xit '
on selection popup cardinfo;
do choice in definbar 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