您好,欢迎访问三七文档
第9章菜单设计方法本章要点VisualFoxPro系统菜单下拉式菜单设计,新建菜单、定义菜单、运行菜单程序、测试菜单系统快捷菜单设计常见的菜单有两种:下拉式菜单与快捷菜单。一个应用程序一般以下拉式菜单的形成列出其具有的功能,而用户则通过菜单调用应用程序的各种功能。而快捷菜单一般从属于某个界面对象,列出了有关该对象的一些操作。本章首先介绍visualfoxpro系统菜单的基本情况,然后依次介绍下拉式菜单和快捷菜单的设计。9.1.1菜单结构1.菜单类型条形菜单每一个条形菜单都有一个内部名字和一组菜单选项,每个菜单选项都有一个名称(标题)和内部名字。弹出式菜单每个弹出式菜单也有一个内部名字和一组菜单选项,每个菜单选项则由一个名称(标题)和选项序号。9.1.2系统菜单重新配置系统菜单命令格式:SETSYSMENUON|OFF|AUTOMATIC|TO[弹出式菜单名表]|TO[条形菜单项名表]命令说明:TO弹出式菜单名表表示重新配置系统菜单,以内部名字列出可用的弹出式。TO条形菜单项名表表示重新配置系统菜单,以条形菜单项内部名表列出可用的子菜单。TODEFAULT表示将系统菜单恢复为缺省配置。9.2设计下拉式菜单9.2.1菜单设计的基本过程1.新建菜单方法:(1)利用“项目管理器”新建菜单在项目管理器中选择“其他”选项卡中的“菜单”,单击“新建”按钮调出“新建菜单”对话框。(2)利用菜单命令修改菜单打开“文件”菜单,选择“新建”命令,弹出“新建”对话框;在对话框中选择“菜单”按钮,单击“新建文件”按钮,弹出“新建菜单”对话框;选择“新建菜单”按钮,调出“菜单设计器”窗口。(3)利用窗口命令修改菜单命令格式:CREATEMENU[FileName|?]2.修改菜单方法:(1)利用菜单命令修改菜单选择“文件”菜单中的“打开”命令,弹出“打开”对话框。在“文件类型”中选择菜单(.MNX文件),然后选取文件,单击“打开”按钮弹出“菜单设计器”。(2)利用“项目管理器”修改菜单在项目管理器中选择“其他”选项卡中的“菜单”。选择所需修改的菜单,单击“修改”按钮弹出“菜单设计器”。(3)利用窗口命令修改菜单命令格式:MODIFYMENU[FileName|?]3.定义菜单方法:在“菜单设计器”窗口中定义菜单,指定菜单的各项内容。选择“文件”菜单中的“打开”命令,弹出“打开”对话框。指定完菜单的各项内容后,应将菜单定义保存到.mnx文件中。4.生成菜单程序方法:在菜单设计器环境下,选择“菜单”菜单中的“生成”命令。在“生成菜单”对话框中指定菜单程序文件的名称和存放路径。单击“生成”按钮。5.运行菜单程序方法:使用命令“DO文件名”运行菜单程序,但文件名的扩展名.mpr不能省略。6.测试菜单系统方法:选择“菜单”中的“生成”。在弹出的“生成菜单”对话框的“输出文件”框中输入生成的菜单程序的名称。选择“生成”按钮,就会生成扩展名为.mpr。“程序”菜单中,选择“运行”命令,或者单击工具栏上的“!”按钮,运行此程序。9.2.2定义下拉式菜单1.定义菜单项名称在指定菜单名称时,可以设置菜单项的访问键,方法是:在作为访问键的字符前加上“\”两个字符。系统还提供了在两组之间插入一条水平的分组线,方法是:在相应行的“菜单名称”列上输入“\-”两个字符。2.定义菜单项动作菜单项动作在“结果”列处定义。单击该列将出现一个下拉列表框,有命令、过程、子菜单和填充名称或菜单项等四种选择。3.设置菜单项选项设置对话框的菜单项属性:快捷方式跳过信息主菜单名或菜单项#4.菜单项的其他按钮“插入”按钮“插入栏”按钮“删除”按钮“预览”按钮移动按钮5“显示”菜单“常规选项”对话框选择“显示”菜单中的“常规选项”,将弹出设置菜单的常规选项对话框。选择“显示”菜单中“菜单选项”命令,就会打开“菜单选项”对话框。在这个对话框里,可以定义当前弹出式菜单的公共过程代码。如果当前弹出式中的某个菜单项没有规定具体的动作,当选择此菜单选项时,则执行该缺省过程代码。例如:利用菜单设计器建立下面的下拉式菜单,具体要求如下:条形菜单的菜单项包括数据维护(T)、数据编辑(E)、退出(Q),其结果分别为激活弹出式菜单sjwh、激活弹出式菜单sjbj、将系统菜单恢复为标准设置。弹出式菜单sjbj菜单项包括:输入记录、\-、修改记录、查看记录,其快捷键分别为CTRL+S、CTRL+X、CTRL+C,其结果分别执行程序文件sr.prg、xg.prg、ck.prg。弹出式菜单sjbj包括:新建、查看和替换三个选项,它们分别调用相应的系统功能。操作步骤如下:单击“文件”下的“新建”命令,选择“菜单”后,单击“新建文件”,打开菜单设计器窗口。设置条形菜单的主菜单项。单击“数据编辑”菜单项“结果”列上的“创建”按钮,使设计器窗口切换到子菜单页,然后设置各菜单项。单击“退出”菜单项“结果”列上的“创建”按钮,打开文本编辑窗口,输入以下两行代码:SETSYSMENUNOSAVESETSYSMENUTODEFAULT单击“输入记录”菜单项“选项”列上的按钮,打开“提示选项”对话框,单击“键标签”文本框,并在键盘上按组合键CTRL+S;用同样的方法分别为修改记录和查看记录设置快捷键。选择“显示”菜单中的“菜单选项”命令,打开“菜单选项”对话框,然后在“名称”框中输入sjbj,再从“菜单级”列表框中选择“菜单栏”选项,返回到主菜单项。单击“数据维护”菜单项“结果”列上的“创建”按钮,切换到子菜单页;单击“插入栏”按钮,打开“插入系统菜单栏”对话框;从对话框的列表框中选择“新建”项并单击“插入”按钮,用同样方法插入“查找”和“替换”项。为弹出式菜单设置内部名字。单击“文件”菜单中的“保存”按钮,结果保存在菜单定义文件cd1.mnx和菜单备注文件cd1.mnt中。单击“菜单”菜单中的“生成”命令,生成的菜单程序文件为cdl.mpr。9.2.3编程方式定义菜单1.定义条形菜单命令格式:DEFINEMENU条形菜单名&&定义条形菜单的内部名字[BAR][IN[WINDOW]窗口名/INSCREEN]&&指定菜单放置在哪个窗口或屏幕上定义条形菜单项的命令格式:DEFINEPAD菜单项名字OF条形菜单名PROMPT字符表达式&&指定菜单项的标题[BEFORE弹出式菜单名字&&指定菜单项的位置/AFTER弹出式菜单名字][KEY键标签[,键说明]]&&指定快捷键[MESSAGE字符表达式]&&指定提示信息[SKIP[FOR逻辑表达式]]&&指定跳过条件[COLORSCHEME颜色配置号]&&指定颜色配置指出菜单项动作:格式1:ONPAD条形菜单选项名OF条形菜单名1ACTIVATEPOPUP弹出式菜单名/ACTIVATEMENU条形菜单名2]格式2:ONSELECTIONPAD条形菜单选项名OF条形菜单名[命令]激活条形菜单:ACTIVATEMENU条形菜单名字[NOWAIT]&&显示和激活菜单后不等待[PAD条形菜单选项名]2.定义弹出式菜单命令格式:DEFINEPOPUP菜单名&&指定弹出式菜单的内部名字[SHORTCUT]&&用作快捷菜单[FROM行号,列号]&&菜单显示的左上角坐标[MARGIN]&&菜单项的两边是否放置一个空格[MESSAGE字符表达式][RELATIVE]&&相对放置菜单选项[SCROLL]&&需要时出现滚动条[SHADOW]&&是否要阴影[COLORSCHEME颜色配置号]定义弹出式菜单项命令格式:DEFINEBAR菜单项序号/系统菜单选项名OF弹出式菜单名&&指明是哪个弹出式菜单的选项PROMPT字符表达式[KEY键标签[,键说明]][MESSAGE字符表达式][SKIP[FOR逻辑表达式]]定义菜单项动作:格式1:ONBAR弹出式菜单选项名OF弹出式菜单名1[ACTIVATEPOPUP弹出式菜单名2/ACTIVATEMENU条形菜单名]格式2:ONSELECTIONBAR弹出式菜单选项名OF弹出式菜单名[命令]激活弹出式菜单ACTIVATEPOPUP弹出式菜单名字[NOWAIT]&&显示和激活菜单后不等待[BAR弹出式菜单选项号]9.2.4为顶层表单添加菜单方法:在“菜单设计器”窗口中设计下拉式菜单。菜单设计时,选择“常规选项”对话框中的“顶层表单”复选框。在表单设计器环境下,将表单的ShowWindow属性值设置为2,使其成为顶层表单。在表单的Init事件代码中添加调用菜单程序的命令,格式如下:DO〈文件名〉WITHThis[,“〈菜单名〉”]在表单的Destroy事件代码中添加清除菜单的命令,使得在关闭单表时能同时清除菜单,释放其所占用的空间。9.3设计快捷菜单1.建立快捷菜单方法:选择“文件”菜单中的“新建”命令。选择“新建”对话框中的“菜单”按钮,单击“新建文件”按钮。选择“新建菜单”对话框中的“快捷菜单”按钮,打开“快捷菜单设计器”窗口。在“快捷菜单设计器”窗口中设计快捷菜单,单击“菜单”下的“生成”命令,生成菜单程序文件。在表单设计器环境下,选定需要添加快捷菜单的对象。在属性窗口的方法程序列表框中,双击“RightClickEvent”项,在选定对象的RightClick事件代码中添加调用快捷菜单程序的命令:DO〈快捷菜单程序文件名〉例如:为某表单建立一个快捷菜单KJCD,其选项有:日期、时间、放大和缩小,时间与放大之间用分组线分隔,如下图所示。选中日期或时间选项时,表单标题将变成当前日期或时间。选中变大或变小选项时,表单大小将缩放百分之十。菜单名称结果日期(\D)过程:s=DTOC(DATE(),1)ss=LEFT(s,4)+’年’SUBS(s,5,2)+’月’+RIGHT(s,2)+’日’mfRef.CAPTION=ss时间(\T)过程:s=TIME()ss=LEFT(s,2)+’时’SUBS(s,4,2)+’分’+RIGHT(s,2)+’秒’mfRef.CAPTION=ss\-加分组线分隔上下两项放大(\L)过程:w=mfRef.WIDTHh=mfRef,HEIGHTmfRef.WIDTH=w+w*0.1mfRef.HEIGHT=h+h*0.1缩小(\S)过程:w=mfRef.WIDTHh=mfRef,HEIGHTmfRef.WIDTH=w-w*0.1mfRef.HEIGHT=h-h*0.1快捷菜单各选项的名称(标题)和结果。操作步骤:(1)打开“快捷菜单设计器”窗口,按表所列的内容定义快捷菜单中各选项的内容。(2)选择“显示”菜单中的“常规选项”命令,打开“常规选项”对话框。(3)依次选择“设置”和“清理”复选框,打开“设置”和“清理”代码编辑窗口,快捷菜单的“设置”代码是一条接收当前表单对象引用的参数语句:PARAMETERSMFREF(4)快捷菜单的“清理”代码中包含清除快捷菜单的命令:RELEASEPOPUPSkjcd(5)选择“显示”菜单的“菜单选项”命令,打开“菜单选项”对话框,在“名称”框中输入快捷菜单的内部名字kjcd。操作步骤:(6)单击“文件”菜单中的“保存”按钮,将结果保存在菜单定义文件kjcd.mnx和菜单备注文件kjcd.mnt中。(7)单击“菜单”菜单中“生成”命令,产生快捷菜单程序文件kjcd.mpr。(8)打开标题为“快捷菜单”的表单,在表单的RightClick事件代码中添加调用快捷菜单的命令:DOkjcd.mprWITHThis
本文标题:第9章菜单设计方法
链接地址:https://www.777doc.com/doc-3866821 .html