江苏省高校计算机等级考试命题研究院 江苏省高校计算机等级考试辅导
7.1菜单设计

9.1 Visual FoxPro系统菜单

考点1 菜单结构

  Visual FoxPro支持两种类型的菜单:条形菜单和弹出式菜单。菜单项的名称显示于屏幕供用户识别,菜单及菜单项的内部名称或选项序号则用于在代码中引用。
  每一个菜单项都可以选择设置一个热键和一个快捷键。
  无论哪种类型的菜单,当选择某个选项时都会有一定的动作,这个动作可以是下列3种情况之一:执行一条命令、执行一个过程或激活另一个菜单。

考点2 系统菜单

  Visual FoxPro系统菜单是一个典型的菜单系统,其主菜单是一个条形菜单。条形菜单的内部名字为_MSYSMENU,也可看做是整个菜单系统的名字。
  条形菜单中常见选项的名称及内部名字如表9-1所示,各弹出式菜单的内部名字如表9-2所示。表9-3的是“编辑”菜单中常用选项的选项名称和内部名字。
     表9-1 主菜单(MSYSMENU)常见选项


 
     表9-2 弹出式菜单的内部名字


 
    表9-3 “编辑”菜单(_MEDIT)常用选项


 
  通过SET SYSMENU命令可以允许或禁止在程序执行时访问系统菜单,也可以重新配置系统菜单,格式如下。
      SET SYSMENU ON|OFF AUTOMATIC
      |TO[<弹出式菜单名表>]
      |TO[<条形菜单项名表>]
      |TO[DEFAULT]|SAVE|NOSAVE

小提示:
  如不带任何参数,直接SET SYSMENU TO命令,将屏蔽系统菜单,使系统菜单不可用。

9.2 下拉式菜单设计

考点3 菜单设计的基本过程

  用菜单设计器设计下拉式菜单的基本过程如下。
  (l)调用菜单设计器。
  (2)在“菜单设计器”窗口中定义菜单,指定菜单的各项内容,定义完成后,通过菜单命令“保存”或直接使用快捷键Ctrl+W保存菜单。
  (3)通过菜单命令“菜单”*“生成”命令,产生可执行的菜单程序文件(MPR)。
  (4)在命令窗口中,使用DO命令执行菜单文件,此处的文件扩展名MPR不能默认。
    菜单设计的基本流程如图9-1所示。
 
图9-1 菜单设计的基本流程图

考点4 定义菜单

  1“菜单设计器”窗口
  “菜单设计器”窗口每页显示和定义一个菜单,可以是条形菜单(菜单栏),也可以是弹出式菜单(子菜单)。“菜单设计器”窗口打开时,首先显示和定义的是条形菜单,即主菜单名。窗口的左边是一个列表框,其中每一行定义当前菜单的一个菜单项,包括“菜单名称”、“结果”和“选项”3列内容(如图9-2所示)。
  (1)“菜单名称”列。
  (2)“结果”列。
  (3)“选项”列。
  2“显示”菜单
  在菜单设计一器环境下,系统“显示”菜单会出现两条命令。
  (1)“常规选项”对话框。
  (2)“菜单选项”对话框。
 
        图9-2 “菜单设计器”窗口

考点5 用编程方式定义菜单

  无论是条形菜单还是弹出式菜单,都可以通过命令进行定义和设计。此处介绍几种有关菜单定义的简单命令。
  (1)条形菜单定义。
  (2)弹出式菜单定义。

考点6 为顶层表单添加菜单

  为顶层表单添加下拉式菜单的方法和过程如下。
  (1)在“菜单设计器”窗口中设计好下拉式菜单。
  (2)打开“常规选项”对话框,选中对话框右下角的“顶层表单”复选框。
  (3)将表单的ShowWindow属性设置为2,使之成为顶层表单。
  (4)在表单的Init事件中添加调用菜单的程序代码:
        DO<文件名>WITH This[,“<菜单名>”]
  此处的<文件名>是指被调用的菜单程序文件(MPR),<菜单名>是为被添加的下拉式菜单的条形菜单指定的一个内部名字。
  (5)在表单的Destroy事件中添加清除菜单的程序代码:
        RELEASE MENU<菜单名>[EXTENDED]
  其中EXTENDED表示在清除条形菜单时一起清除其下属的所有子菜单。

9.3 快捷菜单设计

考点7 快捷菜单的建立与执行

  与下拉式菜单相比,快捷菜单没有条形菜单,只有弹出式菜单。建立快捷菜单的方法和过程如下。
  (1)打开“新建”对话框二
  (2)在“新建”对话框中选择“菜单”选项.单击“新建文件”按钮。
  (3)在“新建菜单”对话框中选择“快捷菜单”选项,打开“快捷菜单设计器”窗口。
  (4)用与设计下拉式菜单相似的方法,在“快捷菜单设计器”窗口中设计快捷菜单,生成菜单程序文件。
  (5)在快捷菜单的“清理”代码中添加清除菜单的命令,使得在选择、执行菜单命令后能及时清除菜单,释放其所占用的内存空间,格式为:
        RELEASE POPUPS<快捷菜单名>[EXTENDED]
  (6)在设计器环境下,选定需要添加快捷菜单的对象。
  (7)在选定对象的RightClick事件代码中,添加调用快捷菜单程序的格式为:
          DO<快捷菜单程序文件名>
    此处的文件扩展名MPR不能默认。