我一直用菜单设计器设计菜单和生成菜单,不过也一知半解地研究了一把,希望能帮到你。以FoxPro 9.0为例,菜单是总称,其可以分为三个部分:主菜单栏、菜单项、子菜单。主菜单栏就是出现在窗口的菜单工具栏中,可以直接看到的那些菜单(比如:“文件”、“编辑”等);菜单项是指主菜单或子菜单中用来点击后即可执行的命令项(比如:“文件”主菜单下的“新建...”、“打开...”等)。但菜单项除了命令外,还可以有特殊项,就是分隔线,在菜单设计器中用“\-”表示;子菜单就是指包含下级菜单的“菜单项”,通常菜单项后面有一个向右的实心小三角。
搞清这些后,回头来看FoxPro 9.0针对这些菜单元素的关键字:主菜单→PAD;菜单项→BAR;子菜单→POPUP。
定义主菜单:DEFINE PAD 主菜单名称(不是菜单要显示的内容) OF _MSYSMENU...。每个主菜单项都对应有一个名称,用户可以自定义,也可以省略让FoxPro随机生成;
定义菜单项:DEFINE BAR 菜单项序号 OF 所属主菜单或子菜单的名称...;
定义子菜单项:DEFINE POPUP 子菜单名称...。
执行主菜单分两种情况:(1)下面是子菜单。ON PAD 主菜单名称 OF _MSYSMENU ACTIVATE POPUP 子菜单名称,这个子菜单名称要和下面将来定义的相关子菜单名称一致,也就是和DEFINE POPUP后面的子菜单名称一致;(2)点击主菜单项后直接执行一个过程或程序段。ON SELECTION PAD 主菜单名称 OF _MSYSMENU DO 过程名/程序名;
执行菜单项:和执行主菜单类似,也分下面是子菜单和直接执行过程/程序段两种,分别对应:ON BAR 菜单项序号 OF 菜单项名称 ACTIVATE POPUP 子菜单项名称、ON SELECTION BAR 菜单项序号 OF 所属菜单项名称 DO 过程名/程序名。每一个子菜单项本身(不含下属菜单项)对于主菜单来说就是一个菜单项,所以,一个菜单项下面有子菜单,用ON BAR命令。在FoxPro 9.0中,我还从来没看到过菜单设计器生成ON SELECTION POPUP命令的,因此,不知其用于何处。
限于篇幅,就不再扩展说了,但愿我这点一知半解的东西可以帮到楼主。楼主如果有兴趣,可以自己在菜单设计器里做个有各种项目的菜单,然后用生成的.MPR程序对照着研究。