1、9.1 Visual FoxPro9.1 Visual FoxPro系统菜单系统菜单 9.2 9.2 菜单设计器菜单设计器 9.3 9.3 下拉式菜单设计下拉式菜单设计 9.4 9.4 快捷菜单设计快捷菜单设计 Visual FoxProVisual FoxPro的系统菜单是用户调用的系统菜单是用户调用Visual FoxProVisual FoxPro系统功能的一系统功能的一种方式或途径。种方式或途径。Visual FoxProVisual FoxPro系统菜单的结构、特点和行为,则是设计系统菜单的结构、特点和行为,则是设计用户自己的菜单系统基础。用户自己的菜单系统基础。Visual Fox
2、ProVisual FoxPro系统的主菜单由主菜单项(菜系统的主菜单由主菜单项(菜单单 栏)、下拉菜单、子菜单和子菜单项等组成,如图栏)、下拉菜单、子菜单和子菜单项等组成,如图9-19-1所示。所示。Visual FoxProVisual FoxPro系统为方便用户,还设计了快捷菜单,快捷菜单一般系统为方便用户,还设计了快捷菜单,快捷菜单一般与处理对象的功能命令联系在一起,快捷菜单是一种弹出式菜单。用户与处理对象的功能命令联系在一起,快捷菜单是一种弹出式菜单。用户在在Visual FoxProVisual FoxPro系统菜单的基础上可以根据自己系统的特点和功能,方系统菜单的基础上可以根据自
3、己系统的特点和功能,方便快捷的设计自己的个性化菜单。便快捷的设计自己的个性化菜单。图图9-1 Visual FoxPro的系统菜单的系统菜单 “菜单设计器菜单设计器”是是Visual FoxProVisual FoxPro提供的可视提供的可视化菜单设计工具,使用化菜单设计工具,使用“菜菜单设计器单设计器”,既可以定制已,既可以定制已有的有的Visual FoxProVisual FoxPro菜单系菜单系统,也可以开发用户自己的统,也可以开发用户自己的菜单系统。菜单系统。9.2 菜单设计器1.启动菜单设计器启动菜单设计器o启动菜单设计器的方法如下:启动菜单设计器的方法如下:方法一:方法一:从从“
4、常用常用”工具栏上单击工具栏上单击“新建新建”按钮,在按钮,在“新建新建”对话对话框中选择框中选择“菜单菜单”,然后单击,然后单击“新建文件新建文件”按钮,屏幕上弹出如图按钮,屏幕上弹出如图9-29-2所示的所示的“新建菜单新建菜单”对话框,单击对话框中的对话框,单击对话框中的“菜单菜单”或或“快快捷菜单捷菜单”按钮,屏幕上显示出按钮,屏幕上显示出“菜单设计器菜单设计器”,如图,如图9-39-3所示。在所示。在打开菜单设计器,即可创建下拉菜单或快捷菜单。打开菜单设计器,即可创建下拉菜单或快捷菜单。图图9-2“新建菜单新建菜单”对话对话框框o方法二:方法二:通过通过“文件文件”菜单的菜单的“新建
5、新建”命令选项,后面的操作步命令选项,后面的操作步骤同方法一。骤同方法一。o方法三:方法三:通过项目管理器。即从项目管理器中选择通过项目管理器。即从项目管理器中选择“菜单菜单”,然,然后单击后单击“新建新建”按钮,后面的操作步骤同方法一。按钮,后面的操作步骤同方法一。o方法四:方法四:使用命令使用命令“CREATE/MODIFY MENUCREATE/MODIFY MENU”可以打开菜可以打开菜单设计器窗口,从而创建文件名为单设计器窗口,从而创建文件名为 、扩展名为、扩展名为.MNX.MNX的菜的菜单文件。单文件。2.菜单设计器的组成菜单设计器的组成 “菜单设计器菜单设计器”窗口的左边是一个列
6、表框,其中每一行定义当前菜单窗口的左边是一个列表框,其中每一行定义当前菜单栏的一个菜单项,包括栏的一个菜单项,包括“菜单名称菜单名称”、“结果结果”和和“选项选项”三列内容。三列内容。图图9-3“菜单设计器窗口菜单设计器窗口”(1)“菜单名称菜单名称”列列 指定菜单单项名称,也称为标题,用于显示,并非内部名。指定菜单单项名称,也称为标题,用于显示,并非内部名。在指定菜单名称时,可以设置菜单项的访问键(热键),方法是在指定菜单名称时,可以设置菜单项的访问键(热键),方法是在要作为访问键的字符前加上在要作为访问键的字符前加上“”两个字符两个字符.如指定菜单项名称为如指定菜单项名称为“文件(文件(F
7、)”,那么字母那么字母F即为该菜单项的访问键,当同时按下即为该菜单项的访问键,当同时按下Alt键和键和F键时可打开文件下拉菜单。键时可打开文件下拉菜单。可以根据各菜单项功能的相似性或相近性可以根据各菜单项功能的相似性或相近性,将弹出式菜单项分将弹出式菜单项分组组,如将剪切、复制、粘贴分为一组,将查找、替换分为一组等。如将剪切、复制、粘贴分为一组,将查找、替换分为一组等。系统提供的分组手段是在两组之间插入一条水平的分组线,方法系统提供的分组手段是在两组之间插入一条水平的分组线,方法是在相应行的是在相应行的“菜单名称菜单名称”列上输入列上输入“-”两字符。两字符。(2)结果)结果”列列 该列用于指
8、定当用户选择该菜单项时的动作。该列用于指定当用户选择该菜单项时的动作。单击该列将出现一个下拉列表框,有命令、过程、子菜单和填充名称单击该列将出现一个下拉列表框,有命令、过程、子菜单和填充名称或菜单项等四种选择,如图或菜单项等四种选择,如图9-4所示。所示。图图9-4“结果结果”列列命令命令选择此选项,列表框右侧会出现一个文本该。可以在文本框内输入选择此选项,列表框右侧会出现一个文本该。可以在文本框内输入一条具体的命令。当选择该菜单项时,将执行这条命令。一条具体的命令。当选择该菜单项时,将执行这条命令。过程过程选择此选项,列表框右侧会出现选择此选项,列表框右侧会出现“创建创建”命令按钮。单击命令
9、按钮。单击“创建创建”按按钮将打开一个文本编辑窗口,可以在其中输入和编辑过程代码。钮将打开一个文本编辑窗口,可以在其中输入和编辑过程代码。要注意,在输入过程代码时,不需要写入要注意,在输入过程代码时,不需要写入PROCEDURE语句。语句。以后,当再单击以后,当再单击“编辑编辑”命令按钮可以打开文本编辑窗口以修改命令按钮可以打开文本编辑窗口以修改过程代码。当选择该菜单项时,将执行指定过程代码。过程代码。当选择该菜单项时,将执行指定过程代码。子菜单子菜单选择此选项,列表框左侧会出现选择此选项,列表框左侧会出现“创建创建”或或“编辑编辑”命令按钮(第一命令按钮(第一次定义时为次定义时为“创建创建”
10、按钮,以后为按钮,以后为“编辑编辑”按钮)。单击按钮)。单击“创建创建”或或“编辑编辑”按钮,按钮,“菜单设计器菜单设计器”窗口就切换到子菜单页,可以在其中定义窗口就切换到子菜单页,可以在其中定义子菜单。此时,窗口右上方的子菜单。此时,窗口右上方的“菜单级菜单级”下拉列表框内会显示当前子菜下拉列表框内会显示当前子菜单的内部名字。选择单的内部名字。选择“菜单级菜单级”下拉列表框内的选项,可以返回到上级下拉列表框内的选项,可以返回到上级子菜单或最上层的条形菜单定义页面。子菜单或最上层的条形菜单定义页面。默认的子菜单内部名字为上级菜单相应菜单项的标题,默认的子菜单内部名字为上级菜单相应菜单项的标题,
11、但可以重新指定。最上层的条形菜单不能指定内部名字,但可以重新指定。最上层的条形菜单不能指定内部名字,其在其在“菜单级菜单级”下拉列表框内显示为下拉列表框内显示为“菜单栏菜单栏”。当选择该菜单项时,将激活指定的子菜单。当选择该菜单项时,将激活指定的子菜单。填充名称或菜单项填充名称或菜单项#选择此选项,列表框右侧会出现一个文本框。可以在选择此选项,列表框右侧会出现一个文本框。可以在文本框内输入菜单项的内部名字或序号。若当前定义的菜文本框内输入菜单项的内部名字或序号。若当前定义的菜单是长形菜单,该选项为单是长形菜单,该选项为“填充名称填充名称”,应指定菜单项的,应指定菜单项的内部名字。若当前菜单为弹
12、出式子菜单,该选项为内部名字。若当前菜单为弹出式子菜单,该选项为“菜单菜单项项#”#”,应指定菜单项的序号。,应指定菜单项的序号。弹出式菜单的菜单项序号也可以指定为弹出式菜单的菜单项序号也可以指定为Visual FoxPro系系统菜单中某个菜单命令的内部名字,如统菜单中某个菜单命令的内部名字,如“文件文件”菜单中菜单中“新新建建”命令的内部名字命令的内部名字MFI-NEW,此时,正在定义的菜单项,此时,正在定义的菜单项功能就与相应的菜单命令功能相同。功能就与相应的菜单命令功能相同。(3)“选项选项”列列 每个菜单列的每个菜单列的“选项选项”列都有一个无符号按钮,单击列都有一个无符号按钮,单击该
13、按钮就会出现该按钮就会出现“提示选项提示选项”对话框,如图对话框,如图9-5所示,供所示,供用户定义菜单的其他属性。当在对话框中定义过属性后,用户定义菜单的其他属性。当在对话框中定义过属性后,按钮上就会出现符号按钮上就会出现符号。图图9-5“提示选项提示选项”对话框对话框快捷方式快捷方式 指定菜单项的快捷键。方法是:先用鼠标单击指定菜单项的快捷键。方法是:先用鼠标单击“键标签键标签”文本框,使光标定位该文本框,然后在键盘上按快捷键。文本框,使光标定位该文本框,然后在键盘上按快捷键。跳过跳过 定义菜单项的跳过条件。定义菜单项的跳过条件。信息信息 定义菜单项的说明信息。定义菜单项的说明信息。主菜单
14、名主菜单名 指定条形菜单项的内部名字或弹出式菜单项的序号。如指定条形菜单项的内部名字或弹出式菜单项的序号。如果不指定菜单项的内部名字或序号,系统会自动设定。果不指定菜单项的内部名字或序号,系统会自动设定。3.菜单级菜单级 “菜单级菜单级”列表框显示当前的菜单级别,并且可利用列表框显示当前的菜单级别,并且可利用这项功能方便地从子菜单返回到任意一级菜单。这项功能方便地从子菜单返回到任意一级菜单。4.菜单项菜单项 菜单项区域有菜单项区域有“插入插入”按钮、按钮、“插入栏插入栏”按钮和按钮和“删除删除”按钮。按钮。“插入插入”按钮按钮 单击该按钮,可在当前菜单项行之前插入一个新的菜单项行。单击该按钮,
15、可在当前菜单项行之前插入一个新的菜单项行。“插入栏插入栏”按钮按钮 在当前菜单项之前插入一个在当前菜单项之前插入一个Visual FoxPro系统菜单命令。系统菜单命令。“删除删除”按钮按钮 单击该按钮,可删除当前菜单项行。单击该按钮,可删除当前菜单项行。“预览预览”按钮按钮 单击该按钮,可预见菜单效果。单击该按钮,可预见菜单效果。移动按钮移动按钮 每一个菜单项左侧都有一个移动按钮,拖动移动按钮每一个菜单项左侧都有一个移动按钮,拖动移动按钮可以改变菜单项在当前菜单中的位置。可以改变菜单项在当前菜单中的位置。9.3 下拉式菜单设计下拉式菜单设计 在在“新建菜单新建菜单”对话框中选择对话框中选择“
16、菜单菜单”,则进入菜单,则进入菜单生成器,创建下拉菜单。设计下拉菜单时,首先要设计菜生成器,创建下拉菜单。设计下拉菜单时,首先要设计菜单栏,然后为菜单栏的每一主菜单项设计各种功能。单栏,然后为菜单栏的每一主菜单项设计各种功能。菜单设计器的项主要有菜单设计器的项主要有3 3个:个:菜单名称、结果、选项菜单名称、结果、选项9.3.1 创建菜单结构文件创建菜单结构文件 Visual FoxPro支持两种类型的菜单:条形菜单和弹支持两种类型的菜单:条形菜单和弹出式菜单。每一个条形菜单都有一个内部名字和一组菜单出式菜单。每一个条形菜单都有一个内部名字和一组菜单选项,每个菜单选项都有一个名称(标题)和内部
17、名字。选项,每个菜单选项都有一个名称(标题)和内部名字。每一个弹出式菜单出有一个内部名字和一组菜单选项,每每一个弹出式菜单出有一个内部名字和一组菜单选项,每个菜单选项则有一个名称(标题)和选项序号。菜单项的个菜单选项则有一个名称(标题)和选项序号。菜单项的名称显示屏幕供用户识别,菜单及菜单项的内部名字或选名称显示屏幕供用户识别,菜单及菜单项的内部名字或选项序号则用于在代码中引用。项序号则用于在代码中引用。每一个菜单选项都可以选择地设置一个热键和一个快捷键。每一个菜单选项都可以选择地设置一个热键和一个快捷键。热键通热键通常是一个字符,常是一个字符,当菜单激活时,可以按菜单项的热键快速选择该菜单项
18、。当菜单激活时,可以按菜单项的热键快速选择该菜单项。快捷键通常是快捷键通常是ctrl键和另一个字符键组成的组合键键和另一个字符键组成的组合键。不管菜单是否激活,。不管菜单是否激活,都可以通过快捷键选择相应的菜单选项。都可以通过快捷键选择相应的菜单选项。无论是哪种类型的菜单,当选择其中某个选项时都会有一定的动作无论是哪种类型的菜单,当选择其中某个选项时都会有一定的动作。这个动作可以是下面三种情况中的一种:。这个动作可以是下面三种情况中的一种:执行一条命令、执行一个过程执行一条命令、执行一个过程和激活另一个菜单。和激活另一个菜单。典型的菜单系统一般是典型的菜单系统一般是一个下拉式菜单,由一个条形菜
19、单和一组弹一个下拉式菜单,由一个条形菜单和一组弹出式菜单组成出式菜单组成。其中条形菜单作为主菜单,弹出式菜单作为子菜单。当选。其中条形菜单作为主菜单,弹出式菜单作为子菜单。当选择一个条形菜单选项时,激活相应的弹出式菜单。择一个条形菜单选项时,激活相应的弹出式菜单。快捷菜单一般由一个或一组上下级的弹出式菜单组成。快捷菜单一般由一个或一组上下级的弹出式菜单组成。建立菜单结构文件,可以通过建立菜单结构文件,可以通过“菜单设计器菜单设计器”来完成。来完成。操作步骤:操作步骤:(1)打开)打开“文件文件”菜单,选择菜单,选择“新建新建”选项。选项。(2)在)在“新建新建”对话框,选择对话框,选择“菜单菜
20、单”,再按,再按“新建文件新建文件”按钮。按钮。(3)在弹出)在弹出“新建菜单新建菜单”窗口,选择窗口,选择“菜单菜单”或或“快捷菜单快捷菜单”。(4)在)在“菜单设计器菜单设计器”中创建菜单结构(输入菜单项、子菜单、过中创建菜单结构(输入菜单项、子菜单、过程、命令等)。程、命令等)。(5)将所建立的菜单结构保存为扩展名为)将所建立的菜单结构保存为扩展名为.MNX的菜单结构文件。的菜单结构文件。9.3.2 创建主菜单创建主菜单在在“菜单设计器菜单设计器”中创建主菜单是指建立主菜单栏。中创建主菜单是指建立主菜单栏。操作步骤:操作步骤:(1)使用菜单或命令的方式打开)使用菜单或命令的方式打开“菜单
21、设计器菜单设计器”窗口窗口(操作步骤同操作步骤同9.2节)。节)。(2)在)在“菜单名称菜单名称”列中将主菜单栏中各菜单项的名字、热列中将主菜单栏中各菜单项的名字、热键逐一输入。在键逐一输入。在“菜单设计器菜单设计器”中建立的主菜单栏如图中建立的主菜单栏如图9-6所所示。示。图图9-6“菜单设计器菜单设计器”中的主菜单中的主菜单9.3.3 创建子菜单创建子菜单 菜单栏中各菜单输入结束后,根据需要为某些菜单项菜单栏中各菜单输入结束后,根据需要为某些菜单项创建子菜单。创建子菜单。操作步骤:操作步骤:(1)在)在“菜单名称菜单名称”列中,选定要添加菜单项的主列中,选定要添加菜单项的主菜单标题。菜单标
22、题。(2)单击)单击“创建创建”(“编辑编辑”)按钮,出现一个空)按钮,出现一个空的(有内容的)菜单设计器窗口,该窗口的的(有内容的)菜单设计器窗口,该窗口的“菜单级菜单级”中中显示主菜单标题(如新建显示主菜单标题(如新建(N)),表示二级菜单。表示二级菜单。(3)在)在“菜单名称菜单名称”列中,输入(修改)各子菜单项的名称,列中,输入(修改)各子菜单项的名称,如图如图9-7所示。所示。图图9-7“菜单设计器菜单设计器”中的子菜单中的子菜单(4)结束子菜单的输入后,在)结束子菜单的输入后,在“菜单级菜单级”的下拉列表中的下拉列表中选择选择“菜单栏菜单栏”返回主菜单,结束创建子菜单的操作。返回主
23、菜单,结束创建子菜单的操作。9.3.4指定菜单项的任务指定菜单项的任务 菜单选项设计完成后,还要给每个菜单选项指定任务,菜单选项设计完成后,还要给每个菜单选项指定任务,菜单设计工作才算完成。菜单设计工作才算完成。菜单选项的任务,可以是子菜单、命令或过程。菜单选项的任务,可以是子菜单、命令或过程。操作步骤:操作步骤:(1)选定菜单项或子菜单,单击)选定菜单项或子菜单,单击结果结果的下拉箭头。的下拉箭头。(2)选择)选择“命令命令”、“菜单项菜单项#”、“子菜单子菜单”或或“过程过程”。选择选择“命令命令”,在右侧空文本框中输入命令。,在右侧空文本框中输入命令。选择选择“菜单项菜单项#”指定菜单项
24、内部编号。指定菜单项内部编号。选择选择“过程过程”,单击,单击“创建创建”(“编辑编辑”)按钮,在弹)按钮,在弹出的出的“过程过程”编辑器中输入(修改)程序段。编辑器中输入(修改)程序段。选择选择“子菜单子菜单”的操作过程同的操作过程同9.3.3节的操作步骤。节的操作步骤。9.3.5 生成菜单程序生成菜单程序 菜单结构文件存放着菜单的各项定义,但其本身是一菜单结构文件存放着菜单的各项定义,但其本身是一个表文件,并不能够运行。这一步就是要根据菜单结构产个表文件,并不能够运行。这一步就是要根据菜单结构产生可执行的菜单程序文件(生可执行的菜单程序文件(.mpr文件)。文件)。操作步骤操作步骤:(1
25、1)在菜单设计器窗口,当菜单结构的设计完成后,单击)在菜单设计器窗口,当菜单结构的设计完成后,单击“菜单菜单”,选择,选择“生成生成”命令选项,如图命令选项,如图9-89-8所示。所示。图图9-8选择选择“生成生成”命令选项命令选项(2)在出现的)在出现的“生成菜单生成菜单”询问框中输入或选择菜单程序文件询问框中输入或选择菜单程序文件的路径和文字,单击的路径和文字,单击生成生成按钮即可,如图按钮即可,如图9-9所示。所示。图图9-9“生成菜单生成菜单”询问框询问框9.3.6 运行菜单程序运行菜单程序 当生成了菜单程序文件后,可以通过运行菜单命令运行菜当生成了菜单程序文件后,可以通过运行菜单命令
26、运行菜单。单。运行菜单的命令如下:运行菜单的命令如下:【命令命令】DO 注:运行菜单程序时,文件扩展名注:运行菜单程序时,文件扩展名.MPR不能省略。运行不能省略。运行菜单程序时,系统会自动编译菜单程序时,系统会自动编译.mpr文件,产生用于运行的文件,产生用于运行的.mpx文件。文件。运行菜单操作步骤是:运行菜单操作步骤是:(1)编写程序运行菜单程序文件。)编写程序运行菜单程序文件。(2)执行运行菜单程序文件。)执行运行菜单程序文件。【例例9-1】利用菜单设计器建立一个下拉式菜单,具体要求利用菜单设计器建立一个下拉式菜单,具体要求如下:如下:1、条形菜单的菜单项包括:数据维护(、条形菜单的菜
27、单项包括:数据维护(W)、编辑()、编辑(B)、退出()、退出(T),它们的结果分别是:激活弹出式菜单),它们的结果分别是:激活弹出式菜单WH、激活弹出式菜单、激活弹出式菜单BJ、将系统菜单恢复为标准设置。、将系统菜单恢复为标准设置。2、弹出式菜单、弹出式菜单WH菜单项包括:录入记录、修改记录、浏菜单项包括:录入记录、修改记录、浏览记录,它们的快捷方式分别为览记录,它们的快捷方式分别为Ctrl+L、Ctrl+X、Ctrl+I,它们的结果分别是执行程序文件(它们的结果分别是执行程序文件(e.g)lr.prg、xg.prg、ll.prg。3、弹出式菜单、弹出式菜单BJ包括剪切、复制和粘贴三个选项,
28、它们包括剪切、复制和粘贴三个选项,它们分别调用相应的系统标准功能。分别调用相应的系统标准功能。操作步骤如下:操作步骤如下:(1)在命令窗口输入命令:)在命令窗口输入命令:MODIFY MENU cdlx,打开打开“菜单设计器菜单设计器”窗口。窗口。(2)设置条形菜单的菜单项,如图)设置条形菜单的菜单项,如图9-10所示。所示。图图9-10设置主菜单设置主菜单3)为菜单项)为菜单项“退出退出”定义过程代码:单击菜单项定义过程代码:单击菜单项“结果结果”列上的列上的“创建创建”按钮,打开文本编辑窗口,输按钮,打开文本编辑窗口,输入下面两行代码:入下面两行代码:SET SYSMENU NOSAVES
29、ET SYSMENU TO DEFAULT(4)定义弹出式菜单定义弹出式菜单WH:单击:单击“数据维护数据维护”菜单项菜单项“结果结果”列上的列上的“创建创建”按钮,使设计器窗口切换到子菜单页,然按钮,使设计器窗口切换到子菜单页,然后设置各菜单项,如图后设置各菜单项,如图9-11所示。所示。图图9-11设置设置“数据维护数据维护”子菜单子菜单 (5)为菜单项)为菜单项“录入记录录入记录”设置快捷键:单击菜单项设置快捷键:单击菜单项“选项选项”列上的按钮,打开列上的按钮,打开“提示选项提示选项”对话框,然后单击对话框,然后单击“键标签键标签”文本框,并在键盘上按组合键文本框,并在键盘上按组合键C
30、trl+L。用同样的。用同样的方法为其他菜单项设置快捷键。方法为其他菜单项设置快捷键。(6)设置弹出式菜单的内部名字:从)设置弹出式菜单的内部名字:从“显示显示”菜单中选菜单中选择择“菜单选项菜单选项”命令,打开命令,打开“菜单选项菜单选项”对话框,然后在对话框,然后在“名称名称”框中输入框中输入WH,如图,如图9-12所示。所示。图图9-12设置设置“数据维护数据维护”子菜单的内部名子菜单的内部名(7)从)从“菜单级菜单级”列表框中选择列表框中选择“菜单栏菜单栏”,返回到主,返回到主菜单页。菜单页。(8)定义弹出式菜单)定义弹出式菜单BJ:单击编辑菜单项:单击编辑菜单项“结果结果”列上列上的
31、的“创建创建”按钮,使设计器窗口切换到子菜单页;单击按钮,使设计器窗口切换到子菜单页;单击“插入栏插入栏”按钮,打开按钮,打开“插入系统菜单栏插入系统菜单栏”对话框;从对话对话框;从对话框的列表框中选择粘贴项并单击框的列表框中选择粘贴项并单击“插入插入”按钮;用同样方按钮;用同样方法插入复制和剪切;用与第(法插入复制和剪切;用与第(6)步相同的方法为弹出式菜)步相同的方法为弹出式菜单单BJ设置内部名字。最后结果如图设置内部名字。最后结果如图9-13所示。所示。图图9-13设置设置“编辑编辑”子菜单子菜单(9)保存菜单定义:单击)保存菜单定义:单击“文件文件”菜单中的菜单中的“保存保存”按按钮,
32、结果保存在菜单定义文件钮,结果保存在菜单定义文件cdlx.mnx和菜单备注文件和菜单备注文件cdlx.mnt中。中。(10)生成菜单程序:单击)生成菜单程序:单击“菜单菜单”菜单中菜单中“生成生成”命命令。产生的菜单程序文件为令。产生的菜单程序文件为cdlx.mpr。9.4 快捷菜单设计快捷菜单设计 菜单设计器除了设计菜单设计器除了设计下拉菜单,还可以设计快下拉菜单,还可以设计快捷菜单,快捷菜单是单击捷菜单,快捷菜单是单击右键才出现的菜单。菜单右键才出现的菜单。菜单设计器只提供生成快捷菜设计器只提供生成快捷菜单的结构,而具体要运行单的结构,而具体要运行时的显示快捷菜单需要编时的显示快捷菜单需要
33、编程来实现。程来实现。1、在、在“新建菜单新建菜单”对话框中选择对话框中选择“快捷菜单快捷菜单”按钮,打开按钮,打开“快捷菜单设计器快捷菜单设计器”窗口,如图窗口,如图9-14所示。所示。图图9-14“快捷菜单设计器快捷菜单设计器”2、与设计下拉式菜单相似的方法,在、与设计下拉式菜单相似的方法,在“快捷菜单设计器快捷菜单设计器”窗口中设计快捷菜单,生成菜单程序文件。窗口中设计快捷菜单,生成菜单程序文件。3、在快捷菜单的、在快捷菜单的“清理清理”代码中添加清除菜单的命令,代码中添加清除菜单的命令,使得在选择、执行菜单命令后能及时清除菜单,释放其所占使得在选择、执行菜单命令后能及时清除菜单,释放其
34、所占用的内存空间。用的内存空间。命令格式如下:命令格式如下:RELEASE POPUPS 快捷菜单名快捷菜单名 EXTENDED4、在表单设计器环境下,选定需要添加快捷菜单的对象。、在表单设计器环境下,选定需要添加快捷菜单的对象。5、在选定对象的确良、在选定对象的确良RightClick事件代码中添加调用快捷事件代码中添加调用快捷 菜单程序的命令:菜单程序的命令:DO 其中文件名的扩展名其中文件名的扩展名.MPR不能省略。不能省略。【例例9-2】为表单上某文本框建立一个具有为表单上某文本框建立一个具有“撤消撤消”、“剪剪切切”、“复制复制”、“粘贴粘贴”和和“消除消除”功能的快捷菜单。功能的快
35、捷菜单。操作步骤:操作步骤:(1)打开)打开“快捷菜单设计器快捷菜单设计器”窗口,单击窗口,单击“插入栏插入栏”按钮按钮,打开,打开“插入系统菜单栏插入系统菜单栏”对话框。对话框。(2 2)在)在“插入系统菜单栏插入系统菜单栏”对话框中,先后选定对话框中,先后选定“撤消撤消”、“剪切剪切”、“复制、复制、“粘贴粘贴”和和“消除消除”选项,然后单击选项,然后单击“插入插入”按钮,将它们一一插入。按钮,将它们一一插入。(4)打开)打开“常规选项常规选项”对话框,选择对话框,选择“设置设置”复选框,复选框,在在“设置设置”代码编辑窗口输入:代码编辑窗口输入:PARAMETERS mRef选择选择“清
36、除清除”复选框,在复选框,在“清除清除”代码编辑窗口输入:代码编辑窗口输入:Release popups popmenu01.mnx&这是本快捷菜这是本快捷菜单准备存盘的名字单准备存盘的名字(5)保存菜单为菜单定义文件)保存菜单为菜单定义文件popmenu01.mnx和和popmenu01.mnt。(6)单击系统菜单)单击系统菜单“菜单菜单”栏下的栏下的“生成生成”菜单项,生菜单项,生成菜单程序成菜单程序popmenu01.mpr。(7)打开某个已有表单,选择一个文本框,添加该文本)打开某个已有表单,选择一个文本框,添加该文本框的框的RightClick事件代码如下。事件代码如下。DO popmenu01.mpr with THIS(8)运行表单,在表单窗口的文本框中单击右键,出现)运行表单,在表单窗口的文本框中单击右键,出现快捷菜单。快捷菜单。