VFP第9章++菜单设计
12 / 41
菜单样例
1. 启动菜单设计器
方法:文件菜单→新建→选择菜单→新建文件 →菜单
2. 设置菜单栏的主菜单项
*菜单名称填入表操作、表输出和退出 *结果选择子菜单、子菜单和命令 *命令后文本框中输入Set Sysmenu To Default
13 / 41
菜单样例
3. 设置下拉子菜单
菜单栏菜单项 子菜单菜单项 结果列
33 / 41
设置程序菜单与VFP系统菜单相对位置
替换:是VFP系统的默认选项,用程序菜单 替换系统菜单,即仅显示程序菜单项和与当 前操作有关的VFP系统菜单项。
追加:将程序菜单插入到系统菜单中指定的 菜单项之后。
在…之前:将程序菜单插入到系统菜单中指 定的菜单项之前。在右侧下拉列表框中选择 用于定位的VFP系统菜单项。
1. 新建菜单 方法一:文件菜单→新建→选择菜单→新建 文件→菜单按钮。
方法二:常用工具栏上新建→选择菜单→ 新建文件→菜单按钮。
方法三:在项目管理器中其他选项卡→菜 单→新建→菜单按钮。
16 / 41
1. 新建菜单 方法四:命令方式。 Create |Modify Menu [<菜单文件名>] 命令说明:执行此命令后,系统生成扩 展名为MNX和MNT的菜单文件。
21 / 41
2. “结果”列
命令:表示此菜单项执行一个命令。
过程:用于输入菜单项要执行程序 。
填充名称或菜单项#:若定义主菜单项,则选 项为填充名称;用于填写有效的主菜单项内部 名,运行时用当前菜单名称代替原菜单名称显 示。
若定义子菜单项,则选项为菜单项#。可在 右侧文本框内输入子菜单项的内部名或序号。 可指定系统菜单中某个菜单项的内部名。
Create Menu
打开菜单设计器 设计菜单
菜单文件
(MNX , MNT)
Do <文件 主名>.MPR
生成菜单程序 执行菜单程序
菜单程序文件
(MPR)
11 / 41
9.2.2 菜单样例
菜单:是一系列选项,每一个菜单项都有名称, 方便用户识别,而当用户选择某一菜单项时将 会执行相应操作。
样例:设计一个简单的管理表文件的菜单。 菜单中包括3个主菜单选项:表操作、表输出 和退出。表操作的子菜单包含4个选项:打开 表、浏览、修改表结构和关闭表。表输出的 子菜单包含2个选项:输出表结构和输出表内 容。退出是恢复VFP系统菜单。 样例
36 / 41
2. 设置表单与调用菜单
在表单的Destroy事件中清除菜单。 格式:Release Menu <菜单内部名表> 说明:从内存中清除菜单,菜单内部名是 调用菜单时为菜单所起的名称。
例题:在Mainform表单中调用菜单。
37 / 41
9.5 快捷菜单设计与应用
在程序运行过程中,右击对象弹出的菜单是 快捷菜单,也称对象的右击菜单。快捷菜单 由一个弹出式菜单组成,或者由一系列有上 下级关联的弹出式菜单组成。
在…之后:将程序菜单添加到系统菜单之后。
34 / 41
9.4.2 设置表单中的程序菜单
要使程序菜单显示在表单中,在设计程序菜 单和表单时,必须设置相关属性。
1. 设置菜单
方法:菜单设计器下,单击显示菜单中的常 规选项,在常规选项对话框中,选定顶层表 单复选框,使当前程序菜单成为表单中调用 的菜单。
例题
8 / 41
2. 指定系统菜单的默认配置
命令格式:Set Sysmenu Save | Nosave 命令说明:用于指定系统菜单的默认配置。
Save:指定当前系统菜单为默认配置。
Nosave:指定VFP系统菜单的最初配置为默认 配置。
例题
9 / 41
3. 设置是否显示系统菜单项
命令格式: Set Sysmenu On| Off
35 / 41
2. 设置表单与调用菜单
在表单设计器中,将表单的ShowWindow 属性的值设为2-作为顶层表单。
在表单的Load、Init事件中调用菜单程序。
格式:Do <菜单程序文件名> With This[Form] [,”<菜单内部名>”]
说明:扩展名MPR不能省略。This表示在当前 表单中调用菜单程序。为了在程序中其他位置 能引用菜单名,调用菜单程序时要为菜单规定 菜单内部名。
18 / 41
9.3.2 定义菜单项
菜单设计器
菜单名称
结果
选项 菜单级
19 / 41
1. “菜单名称”列
菜单名称列内输入菜单项的名称,也称菜单 标题,仅用于显示。
可以设置菜单项的访问键,也称热键。
方法:在访问键的字符前加上\<。 例如:输入菜单名称为“表(\<T)”,则可 以用Alt键和字母T组合访问该菜单项。
在VFP中运行菜单程序文件时,菜单也可 显示在表单中作为应用程序的主菜单。
对于同一个程序菜单来说,其位置只能有 一个,不能二者兼得。
32 / 41
设置程序菜单与VFP系统菜单相对位置
方法:在菜单设计器下,显示菜单→常规选项 →进入常规选项对话框→ 位置选项中,选定 当前程序菜单与系统菜单的位置关系。
第9章 程序菜单设计及应用(3学时)
吉林大学计算机教学与研究中心
9.1 设置VFP系统菜单
常见的菜单:下拉式菜单和快捷菜单
一个应用程序通常采用下拉式菜单的 形式列出其功能,供用户使用。
快捷菜单一般从属于某个对象,列出有 关对象的常用操作。也称右击菜单。
命令说明:用于设置程序中执行到具有交互 性命令时是否显示系统菜单项。 常用交互性命令: Wait、Browse、Edit等。
On:程序中执行交互命令时显示系统菜单。
Off:程序中执行交互命令时不显示系统菜单。
例题 程序效果
10 / 41
9.2 菜单应用示例设计
菜单设计的基本步骤
创建菜单主要工作在菜单设计器中完成 。
每个弹出式菜单也有各自的内部名。
如文件的弹出式菜单内部名为_Mfile, 编辑的弹出式菜单内部名为_Medit。
4 / 41
菜单结构
每个菜单项也有内部名,内部名是供系统识 别,可以在编程代码中引用。
如文件菜单中打开菜单项内部名_Mfi_Open
可以为每个菜单项设置快捷键,快捷键通 常是Ctrl键与一个字符键的组合。
快捷菜单的特点
与程序菜单相比,快捷菜单只有弹出式菜 单,没有条形菜单。
快捷菜单一般从属于某个对象,通常只列 出与对象有关的一些操作命令。
38 / 41
2. 建立快捷菜单
方法:文件菜单→新建→选择菜单→新建 文件→快捷菜单。
设计快捷菜单的具体方法与设计下拉式菜单 相似,快捷菜单文件扩展名及快捷菜单程序 文件的生成过程与下拉式菜单都相同。
命令
Accept "表文件主名:" To x If File(x+".dbf")
表操作
打开表
过程
Use &x Else Wait ’表文件’+x+’.dbf不存在!’ Endif
浏览
命令 Brows
修改表结构 命令 Modify Structure
输 入 完 毕关,闭表按 Ctr命l+令S 保Use存 , 文 件 主 名 为
如果不指定,系统将为主菜单或子菜单项随机 地分配一个内部名或序号。具有相同的内部名 或内部号的菜单项,具有相同功能(覆盖菜单 名称)。
25 / 41
9.3.2 定义菜单项
插入按钮
单击该按钮,在当前菜单项行之前插入 一个新的空白菜单项行。
插入栏按钮
单击该按钮,打开插入系统菜单栏对话框, 选定所需要的菜单项,再单击插入按钮。则在 当前菜单项行之前插入一个标准的VFP系统菜 单项。并得到系统子菜单项名称和内部名称。
输入逻辑表达式,若值为.T.,则对应菜单项不 可用(灰色表示);若值为.F.,则对应菜单项可 用;若没写,则系统默认该菜单项可用。
24 / 41
3. “选项”列
信息:定义菜单项说明信息。在信息文本框输 入字符表达式,运行菜单,当鼠标指向菜单项, 该表达式的值将显示在VFP状态栏中。
主菜单名或菜单项#:指定主菜单项的内部名 字或子菜单项的内部编号。
39 / 41
#3. 调用与清除快捷菜单
表M输出enuex输输1出出。表表结 内构 容
命令 List Structure 命令 List
14 / 41
菜单样例
4. 生成可执行菜单程序文件。 方法: 菜单菜单→生成。
5. 运行菜单程序 方法:在命令窗口或程序中执行
Do Menuex1.mpr
15 / 41
9.3 菜单设计与应用 启动菜单设计器
例如:在命令窗口中键入
Creat Menu Mymenu
17 / 41
2. 修改菜单 方法一:文件菜单→打开→文件类型为 菜单(*.MNX)→选择菜单文件。
方法二:命令方式。
Modify Menu [<菜单文件名>]
命令说明:系统默认菜单文件名扩展名 为MNX。执行该命令时,若菜单文件存
在,则打开菜单,否则建立菜单。
2 / 41
9.1 设置VFP系统菜单
菜单结构
典型的菜单系统是 下主菜拉单式或菜条单形,菜它单 由 一个条形菜单和一组弹出式菜单组成。
条形菜单是主菜单,菜而单弹项出式菜单作 为子菜单。当单击条形菜单的一个菜 单项时,激活其相弹应出的式弹菜出单式菜单。
3 / 41
菜单结构
每个条形菜单都有内部名和一组菜单项。 如文件菜单的内部名为_Msm_File, 编辑菜单的内部名为_Msm_Edit。
30 / 41