全国计算机等级考试二级VF历年试题合集含答案(CHM文件下载)>>
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不能默认。