Visual FoxPro
1
i s u a l
F
V
o x P r o
Visual FoxPro
2
12.1 菜单设计概述
12.2 下拉式菜单设计
12.3 快速菜单
12.4 为顶层表单添加菜单
12.5 快捷菜单设计
Visual FoxPro
3
12.1.1 菜单的结构
Visual FoxPro支持两种类型的菜单:条形菜单(一级
菜单)和弹出式菜单(子菜单)。它们都有一组菜
单选项显示于屏幕供用户选择。用户选择其中的某
个选项时都会有一定的动作。这个动作可以是下面
3种情况中的一种:执行一条命令、执行一个过程
或激活另一个菜单。
每一个菜单选项都可以有选择地设置一个热键和快捷
键。热键通常是一个字符,当菜单激活时,可以按
菜单项的热键快速选择该菜单项。快捷键通常是
Ctrl和另一个字符键组成的组合键。不管菜单激活
与否,都可以通过快捷键选择相应的菜单选项。
12.1 菜单设计概述
Visual FoxPro
4
常规的菜单系统一般是一个下拉式菜单,由一个
条形菜单和一组弹出式菜单组成。其中条形菜单作
为主菜单,弹出式菜单作为子菜单。当选择一个条
形菜单选项时,激活相应的弹出式菜单。
而快捷菜单一般由一个或一组上下级的弹出式菜
单组成。
在 Visual FoxPro中,可以利用“菜单设计器”
来设计并生成下拉式菜单与快捷菜单。若想从已有
的 Visual FoxPro菜单系统开始创建菜单,则可以使
用“快速菜单”功能。
Visual FoxPro
5
条 形 菜
单
弹出式菜
单
学生档案管理系统菜单
Visual FoxPro
6
12.1.2 建立菜单系统的步骤
不管应用程序的规模多大,打算使用的菜单多么复
杂,创建菜单系统都需以下步骤:
( 1)规划与设计菜单系统。 确定需要哪些菜单项、
菜单项出现在界面的什么位置、哪些菜单要有子
菜单、哪些菜单要执行相应的操作等。
( 2)建立菜单项和子菜单。 使用菜单设计器可以定
义菜单标题、菜单项和子菜单。
( 3)按实际要求为菜单系统指定任务。 指定菜单所
要执行的任务,例如显示表单或对话框等。菜单
建立好之后将生成一个以,mnx为扩展名的菜单文
件和以,mnt为扩展名的菜单备注文件。
( 4)利用已建立的菜单文件,生成扩展名为,mpr的
菜单程序文件。
( 5)运行生成的菜单程序文件。
Visual FoxPro
7
12.1.3 系统菜单的控制
Visual FoxPro系统菜单是一个典型的菜单系统,其主
菜单是一个条形菜单。选择条形菜单中的每一个菜
单项都会激活一个弹出式菜单。在 Visual FoxPro中,
每一个条形菜单都有一个内部名字和一组菜单选项,
每个菜单选项都有一个名称(标题)和内部名字。
例如,Visual FoxPro主菜单的内部名字为
_MSYSMENU,条形菜单项“文件”、“编辑”和
“窗口”的内部名字分别为 _MSM_FILE,
_MSM_EDIT,_MSM_WINDOW。每一个弹出式
菜单也有一个内部名字和一组菜单选项,每个菜单
选项则有一个名称(标题)和选项序号。例如,
_MFILE,_MEDIT,_MWINDOW为弹出式菜单
项“文件”、“编辑”和“窗口”的内部名。菜单
项的名称用于在屏幕上显示菜单系统,而内部名字
或选项序号则用于在程序代码中引用。
Visual FoxPro
8
通过 SET SYSMENU命令可以允许或禁止在程序执行
时访问系统菜单,也可以重新设置系统菜单。命令
格式是:
SET SYSMENU ON|OFF|AUTOMATIC
|TO [<弹出式菜单名表 >]|TO [<条形菜单项名表 >]|TO
[DEFAULT]|SAVE|NOSAVE
其中:
ON允许程序执行时访问系统菜单,OFF禁止程序执
行时访问系统菜单,AUTOMATIC可使系统菜单显
示出来,可以访问系统菜单。
Visual FoxPro
9
TO子句用于重新设置系统菜单。,TO [<弹出式菜单
名表 >]”以菜单项内部名字列出可用的弹出式菜单。
例如,命令 SET SYSMENU TO _MFILE,_MEDIT
将使系统菜单只保留“文件”和“编辑”两个子菜
单。,TO [<条形菜单项名表 >]”以条形菜单项内部
名字列出可用的子菜单。例如,上面的系统菜单设
置命令也可以写成 SET SYSMENU TO
_MSM_FILE,_MSM_EDIT。
Visual FoxPro
10
“TO [DEFAULT]”将系统菜单恢复为缺省配置。
SAVE将当前系统菜单配置指定为缺省配置,
NOSAVE将缺省设置恢复成 Visual FoxPro系统
的标准配置。要将系统菜单恢复成标准设置,
可先执行 SET SYSMENU NOSAVE命令,然后
执行 SET SYSMENU TO DEFAULT命令。
不带参数的 SET SYSMENU TO 命令将屏蔽系统
菜单,使系统菜单不可用。
Visual FoxPro
11
12.2.1 菜单设计器窗口
1.打开菜单设计器窗口
无论建立菜单或者修改已有的菜单,都需要打开菜单
设计器窗口。操作方法是:
在 Visual FoxPro系统主菜单下,从“文件”菜单中
选择“新建”菜单项。打开“新建”对话框后,
选择“菜单”单选按钮,然后单击“新建文件”
按钮,屏幕上出现,新建菜单”对话框。此时若
选“菜单”按钮,将进入菜单设计器窗口。
12.2 下拉式菜单设计
Visual FoxPro
12
“新建菜单”对话
框
菜单设计器窗口
Visual FoxPro
13
建立菜单的命令格式是:
CREATE MENU <菜单文件名 >
打开和新建菜单的命令格式为:
MODIFY MENU <菜单文件名 >
2,菜单设计器窗口的组成
( 1)“菜单名称”列 ( 5)“插入栏”
按钮
( 2)“结果”列 ( 6)“删除”按
钮
( 3)“选项”列 ( 7)“预览”按钮
( 4)“插入”按钮 ( 8)移动按钮
3.“显示菜单”
( 1)“常规选项”对话框 ( 2)“菜单选项”对
话框
Visual FoxPro
14
如果当前菜单是弹出式菜单,那么在对话框中
还可以定义该弹出式菜单的内部名字。该内部
名字将出现在“菜单设计器”窗口的“菜单级”
框中。图 12.7中,定义,cx”为弹出式菜单项
“数据查询”的内部名字。
“菜单选项”对话框
Visual FoxPro
15
12.2.2 建立菜单文件
12.2.3 生成菜单程序
12.2.4 运行菜单程序
Visual FoxPro
16
12.3 快速菜单
“菜单”项下
“快速菜单”
命令
建立快速菜
单后的菜单
设计器窗口
Visual FoxPro
17
一般情况下,使用, 菜单设计器, 设
计的菜单,是在 Visual FoxPro的窗口中运
行的,也就是说,用户菜单不是在窗口的
顶层,而是在第二层,因为, Microsoft
Visual FoxPro”标题一直都被显示。
12.4 为顶层表单添加菜单
Visual FoxPro
18
要去掉, Microsoft Visual FoxPro”标题并换成用户指
定的标题,可以通过顶层表单的设计来实现,基本
思路是:
( 1)首先建立一个下拉式菜单文件。 设计菜单时,
在, 常规选项, 中,选中, 顶层表单, 复选框,然
后生成菜单程序文件。
( 2)创建一个表单,将表单的 ShowWindow属性值
设为 2,使该表单成为顶层表单。 然后在表单的 Init
事件代码中添加如下代码:
DO <菜单程序名 > WITH THIS,.T.
其中 <菜单程序名 >指定被调用的菜单程序文件,其扩
展名,mpr不能省略。
Visual FoxPro
19
快捷菜单是一种单击右键才出现的弹出式菜单,
利用“快捷菜单设计器”仅能生成快捷菜单的
菜单本身,实现单击右键来弹出一个菜单的动
作还需要编程。
12.5 快捷菜单设计
Visual FoxPro
20
例 建立一个具有“撤消”和“剪贴板”功能的快
捷菜单,供浏览学生表时使用。当用户在浏览窗
口单击鼠标右键时,即出现此快捷菜单。
操作步骤如下:
( 1)打开快捷菜单设计器窗口
在 Visual FoxPro系统主菜单下,从“文件”菜单
中选择“新建”菜单选项,打开“新建”对话框
后,选择“菜单”单选按钮,然后单击“新建文
件”按钮,屏幕上出现,新建菜单”对话框。在
“新建菜单”对话框中,选择“快捷菜单”按钮,
进入“快捷菜单设计器”窗口。
Visual FoxPro
21
( 2)插入系统菜单栏
在快捷菜单设计器窗口中,选择“插入栏”按钮,
进入“插入系统菜单栏”对话框,在“插入系统菜
单栏”对话框中选择“粘贴”选项,并单击“插入”
按钮,类似地插入“复制”、“剪切”、“撤消”
等选项,最后单击“关闭”按钮返回到快捷菜单设
计器窗口。
具有撤消和剪贴
板功能的快捷菜
单设计器窗口
Visual FoxPro
22
( 3)生成菜单程序
打开“菜单”菜单,选择“生成”命令,在保存文
件时,将菜单文件主名取为 lppcd,于是菜单保
存在菜单文件 lppcd.mnx和菜单备注文件
lppcd.mnt中。在“生成菜单”对话框中选择
“生成”按钮,就会生成菜单程序 lppcd.mpr。
Visual FoxPro
23
( 4)编写调用程序
在命令窗口中输入,MODI COMM dylppcd命令,
并在程序编辑窗口中输入如下代码:
CLEAR ALL
PUSH KEY CLEAR &&清除以前设置过的功
能键
ON KEY LABEL RIGHTMOUSE DO lppcd.mpr
&&设置鼠标右键为功能键,预置弹出式菜单
USE 学生
BROWSE
USE
PUSH KEY CLEAR
Visual FoxPro
24
( 5)行调用程序及快捷菜单程序
执行命令,DO dylppcd, 屏幕上就会出现浏览窗
口。选择任何数据后,单击右键随即弹出快捷菜
单,便可进行撤消、剪切、复制、粘贴等操作。
快捷菜单的使用
1
i s u a l
F
V
o x P r o
Visual FoxPro
2
12.1 菜单设计概述
12.2 下拉式菜单设计
12.3 快速菜单
12.4 为顶层表单添加菜单
12.5 快捷菜单设计
Visual FoxPro
3
12.1.1 菜单的结构
Visual FoxPro支持两种类型的菜单:条形菜单(一级
菜单)和弹出式菜单(子菜单)。它们都有一组菜
单选项显示于屏幕供用户选择。用户选择其中的某
个选项时都会有一定的动作。这个动作可以是下面
3种情况中的一种:执行一条命令、执行一个过程
或激活另一个菜单。
每一个菜单选项都可以有选择地设置一个热键和快捷
键。热键通常是一个字符,当菜单激活时,可以按
菜单项的热键快速选择该菜单项。快捷键通常是
Ctrl和另一个字符键组成的组合键。不管菜单激活
与否,都可以通过快捷键选择相应的菜单选项。
12.1 菜单设计概述
Visual FoxPro
4
常规的菜单系统一般是一个下拉式菜单,由一个
条形菜单和一组弹出式菜单组成。其中条形菜单作
为主菜单,弹出式菜单作为子菜单。当选择一个条
形菜单选项时,激活相应的弹出式菜单。
而快捷菜单一般由一个或一组上下级的弹出式菜
单组成。
在 Visual FoxPro中,可以利用“菜单设计器”
来设计并生成下拉式菜单与快捷菜单。若想从已有
的 Visual FoxPro菜单系统开始创建菜单,则可以使
用“快速菜单”功能。
Visual FoxPro
5
条 形 菜
单
弹出式菜
单
学生档案管理系统菜单
Visual FoxPro
6
12.1.2 建立菜单系统的步骤
不管应用程序的规模多大,打算使用的菜单多么复
杂,创建菜单系统都需以下步骤:
( 1)规划与设计菜单系统。 确定需要哪些菜单项、
菜单项出现在界面的什么位置、哪些菜单要有子
菜单、哪些菜单要执行相应的操作等。
( 2)建立菜单项和子菜单。 使用菜单设计器可以定
义菜单标题、菜单项和子菜单。
( 3)按实际要求为菜单系统指定任务。 指定菜单所
要执行的任务,例如显示表单或对话框等。菜单
建立好之后将生成一个以,mnx为扩展名的菜单文
件和以,mnt为扩展名的菜单备注文件。
( 4)利用已建立的菜单文件,生成扩展名为,mpr的
菜单程序文件。
( 5)运行生成的菜单程序文件。
Visual FoxPro
7
12.1.3 系统菜单的控制
Visual FoxPro系统菜单是一个典型的菜单系统,其主
菜单是一个条形菜单。选择条形菜单中的每一个菜
单项都会激活一个弹出式菜单。在 Visual FoxPro中,
每一个条形菜单都有一个内部名字和一组菜单选项,
每个菜单选项都有一个名称(标题)和内部名字。
例如,Visual FoxPro主菜单的内部名字为
_MSYSMENU,条形菜单项“文件”、“编辑”和
“窗口”的内部名字分别为 _MSM_FILE,
_MSM_EDIT,_MSM_WINDOW。每一个弹出式
菜单也有一个内部名字和一组菜单选项,每个菜单
选项则有一个名称(标题)和选项序号。例如,
_MFILE,_MEDIT,_MWINDOW为弹出式菜单
项“文件”、“编辑”和“窗口”的内部名。菜单
项的名称用于在屏幕上显示菜单系统,而内部名字
或选项序号则用于在程序代码中引用。
Visual FoxPro
8
通过 SET SYSMENU命令可以允许或禁止在程序执行
时访问系统菜单,也可以重新设置系统菜单。命令
格式是:
SET SYSMENU ON|OFF|AUTOMATIC
|TO [<弹出式菜单名表 >]|TO [<条形菜单项名表 >]|TO
[DEFAULT]|SAVE|NOSAVE
其中:
ON允许程序执行时访问系统菜单,OFF禁止程序执
行时访问系统菜单,AUTOMATIC可使系统菜单显
示出来,可以访问系统菜单。
Visual FoxPro
9
TO子句用于重新设置系统菜单。,TO [<弹出式菜单
名表 >]”以菜单项内部名字列出可用的弹出式菜单。
例如,命令 SET SYSMENU TO _MFILE,_MEDIT
将使系统菜单只保留“文件”和“编辑”两个子菜
单。,TO [<条形菜单项名表 >]”以条形菜单项内部
名字列出可用的子菜单。例如,上面的系统菜单设
置命令也可以写成 SET SYSMENU TO
_MSM_FILE,_MSM_EDIT。
Visual FoxPro
10
“TO [DEFAULT]”将系统菜单恢复为缺省配置。
SAVE将当前系统菜单配置指定为缺省配置,
NOSAVE将缺省设置恢复成 Visual FoxPro系统
的标准配置。要将系统菜单恢复成标准设置,
可先执行 SET SYSMENU NOSAVE命令,然后
执行 SET SYSMENU TO DEFAULT命令。
不带参数的 SET SYSMENU TO 命令将屏蔽系统
菜单,使系统菜单不可用。
Visual FoxPro
11
12.2.1 菜单设计器窗口
1.打开菜单设计器窗口
无论建立菜单或者修改已有的菜单,都需要打开菜单
设计器窗口。操作方法是:
在 Visual FoxPro系统主菜单下,从“文件”菜单中
选择“新建”菜单项。打开“新建”对话框后,
选择“菜单”单选按钮,然后单击“新建文件”
按钮,屏幕上出现,新建菜单”对话框。此时若
选“菜单”按钮,将进入菜单设计器窗口。
12.2 下拉式菜单设计
Visual FoxPro
12
“新建菜单”对话
框
菜单设计器窗口
Visual FoxPro
13
建立菜单的命令格式是:
CREATE MENU <菜单文件名 >
打开和新建菜单的命令格式为:
MODIFY MENU <菜单文件名 >
2,菜单设计器窗口的组成
( 1)“菜单名称”列 ( 5)“插入栏”
按钮
( 2)“结果”列 ( 6)“删除”按
钮
( 3)“选项”列 ( 7)“预览”按钮
( 4)“插入”按钮 ( 8)移动按钮
3.“显示菜单”
( 1)“常规选项”对话框 ( 2)“菜单选项”对
话框
Visual FoxPro
14
如果当前菜单是弹出式菜单,那么在对话框中
还可以定义该弹出式菜单的内部名字。该内部
名字将出现在“菜单设计器”窗口的“菜单级”
框中。图 12.7中,定义,cx”为弹出式菜单项
“数据查询”的内部名字。
“菜单选项”对话框
Visual FoxPro
15
12.2.2 建立菜单文件
12.2.3 生成菜单程序
12.2.4 运行菜单程序
Visual FoxPro
16
12.3 快速菜单
“菜单”项下
“快速菜单”
命令
建立快速菜
单后的菜单
设计器窗口
Visual FoxPro
17
一般情况下,使用, 菜单设计器, 设
计的菜单,是在 Visual FoxPro的窗口中运
行的,也就是说,用户菜单不是在窗口的
顶层,而是在第二层,因为, Microsoft
Visual FoxPro”标题一直都被显示。
12.4 为顶层表单添加菜单
Visual FoxPro
18
要去掉, Microsoft Visual FoxPro”标题并换成用户指
定的标题,可以通过顶层表单的设计来实现,基本
思路是:
( 1)首先建立一个下拉式菜单文件。 设计菜单时,
在, 常规选项, 中,选中, 顶层表单, 复选框,然
后生成菜单程序文件。
( 2)创建一个表单,将表单的 ShowWindow属性值
设为 2,使该表单成为顶层表单。 然后在表单的 Init
事件代码中添加如下代码:
DO <菜单程序名 > WITH THIS,.T.
其中 <菜单程序名 >指定被调用的菜单程序文件,其扩
展名,mpr不能省略。
Visual FoxPro
19
快捷菜单是一种单击右键才出现的弹出式菜单,
利用“快捷菜单设计器”仅能生成快捷菜单的
菜单本身,实现单击右键来弹出一个菜单的动
作还需要编程。
12.5 快捷菜单设计
Visual FoxPro
20
例 建立一个具有“撤消”和“剪贴板”功能的快
捷菜单,供浏览学生表时使用。当用户在浏览窗
口单击鼠标右键时,即出现此快捷菜单。
操作步骤如下:
( 1)打开快捷菜单设计器窗口
在 Visual FoxPro系统主菜单下,从“文件”菜单
中选择“新建”菜单选项,打开“新建”对话框
后,选择“菜单”单选按钮,然后单击“新建文
件”按钮,屏幕上出现,新建菜单”对话框。在
“新建菜单”对话框中,选择“快捷菜单”按钮,
进入“快捷菜单设计器”窗口。
Visual FoxPro
21
( 2)插入系统菜单栏
在快捷菜单设计器窗口中,选择“插入栏”按钮,
进入“插入系统菜单栏”对话框,在“插入系统菜
单栏”对话框中选择“粘贴”选项,并单击“插入”
按钮,类似地插入“复制”、“剪切”、“撤消”
等选项,最后单击“关闭”按钮返回到快捷菜单设
计器窗口。
具有撤消和剪贴
板功能的快捷菜
单设计器窗口
Visual FoxPro
22
( 3)生成菜单程序
打开“菜单”菜单,选择“生成”命令,在保存文
件时,将菜单文件主名取为 lppcd,于是菜单保
存在菜单文件 lppcd.mnx和菜单备注文件
lppcd.mnt中。在“生成菜单”对话框中选择
“生成”按钮,就会生成菜单程序 lppcd.mpr。
Visual FoxPro
23
( 4)编写调用程序
在命令窗口中输入,MODI COMM dylppcd命令,
并在程序编辑窗口中输入如下代码:
CLEAR ALL
PUSH KEY CLEAR &&清除以前设置过的功
能键
ON KEY LABEL RIGHTMOUSE DO lppcd.mpr
&&设置鼠标右键为功能键,预置弹出式菜单
USE 学生
BROWSE
USE
PUSH KEY CLEAR
Visual FoxPro
24
( 5)行调用程序及快捷菜单程序
执行命令,DO dylppcd, 屏幕上就会出现浏览窗
口。选择任何数据后,单击右键随即弹出快捷菜
单,便可进行撤消、剪切、复制、粘贴等操作。
快捷菜单的使用