您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 统计图表 > 第九章菜单设计与应用2
第九章菜单设计与应用9.1.1菜单结构VF支持两种类型的菜单:条形菜单和弹出式菜单.*每一个菜单选项都可以设置一个热键和一个快捷键.热键通常是一个字符,而快捷键通常是CTRL+另一个字符.*无论哪中类型菜单,当选择其中某个选项时都会有一定的动作,这个动作可以是下面三种情况:执行一条命令、执行一个过程和激活另一个菜单.*快捷菜单由一个或一组上下级的弹出式菜单组成..9.1.2系统菜单VF系统菜单是一个典型的菜单系统,其主菜单是一个条形菜单.选择条形菜单中的每个菜单项都会激活一个弹出式菜单.条形菜单本身的内部名字是_MSYSMENU,也可看作整个菜单系统的名字,主菜单和弹出式菜单也有内部名字.**允许或禁止在程序执行时访问系统菜单,也可重新配置系统菜单.格式:SETSYSMENUON|OFF|AUTOMATIC|TO[弹出式菜单名表]|TO[条形式菜单名表]|TO[DEFAULT]|SAVE|NOSAVEON:允许程序执行时访问系统文件OFF:禁止程序执行时访问系统菜单AUTOMATIC:使系统菜单显示出来,可以访问系统菜单TO弹出式菜单名表:重新配置系统菜单,以内部名字列出可用的弹出式菜单,如:SETSYSMENUTO_MFILE,_MWINDOW只保留”文件”和”窗口”菜单TO条形菜单项名表:重新配置系统菜单,以条形菜单项内部名表列出可用的子菜单如:上边的配置可写成:SETSYSMENUTO_MFILE_MFILE,_MSM_MWINDOTODEFAULT:将系统菜单恢复为缺省配置SAVE:将当前的系统菜单配置指定为缺省配置,如果在执行了SETSYSMENUSAVE命令后,修改了系统菜单,那么执行SETSYSMENUDEFAULT命令就可以恢复SETSYSMENUSAVE之前的菜单配置.NOSAVE:将缺省配置恢复成VF系统菜单的标准配置将系统菜单恢复成标准菜单:先执行SETSYSMENUNOSAVE然后SETSYSMENUtoDEFAULT**不带参数的SETSYSMENUTO命令将屏蔽系统菜单,使系统菜单不可用.9.2下拉式菜单设计菜单设计器的功能有两个:一是为顶层表单设计下拉式菜单.二是通过定制VF系统菜单建立应用程序的下拉式菜单.9.2.1菜单设计的基本过程1、调用菜单设计器*选择”文件”菜单中的”新建”命令.*在”新建”对话框中选择”菜单”单选按钮,然后单击”新建文件”按钮.*在”新建菜单”对话框中选择”菜单”按钮.菜单建立或修改命令格式:MODIFYMENU文件名文件名指菜单定义文件,默认扩展名.MNX允许缺省.2、定义菜单在”菜单设计器”窗口中定义菜单,指定菜单的各项内容.如菜单项的名称、快捷键等.保存的方法:”文件”菜单选”保存”或按CTRL+W3、生成菜单程序菜单定义文件存放着菜单的各项定义,但其本身是一个表文件,并不能够运行.根据菜单定义产生可执行的菜单程序文件(.MPR文件),方法:在菜单生成器状态选择”菜单”菜单中的”生成”命令,然后指定名称和存放路径,最后单击”生成”按钮.4、运行菜单格式:DO文件名运行菜单程序,但文件名的扩展名.MPR不能省略.9.2.2定义菜单1、”菜单设计器”窗口“菜单设计器”窗口每页显示和定义一个菜单.可以是条形菜单(菜单栏),也可以是弹出式菜单(子菜单),每一行菜单项包括:”菜单名称”、”结果”、和”选项”三列内容.①”菜单名称”列指定菜单项的名称,也称标题,用于显示,并非内部名字.设置菜单项访问键如:”文件(\F)”②”结果”列用于指定当用户选择该菜单项时的动作.单击时出现下拉列表框:命令、过程、子菜单和填充名称或菜单项等四种选择.*命令:在右侧文本框输入一条具体的命令,当选择该菜单项时,将执行该命令*过程:右侧会出现”创建”命令按钮,单击”创建”打开一个文本编辑窗口,可输入和编辑过程代码,注意不要输入PROCEDURE语句,当创建后再单击时”创建”变为”编辑”*子菜单:右侧会出现”创建”或”编辑”按钮.单击按钮,可定义子菜单.选择”菜单级”可返回上一级菜单或最上层的条形菜单.*填充名称或菜单项#:右侧会出现一个文本框,可以在文本框内输入菜单项的内部名字或序号.若当前为条形菜单,该选项为”填充名称”,应指定菜单项的内部名字,若该菜单为弹出式菜单,该选项为”菜单项#”应指定该菜单的序号.弹出式菜单的菜单项序号也可以指定为VF系统菜单中某个菜单命令的内部名字如”新建”内部名字_MF1_NEW此时正在定义的菜单项与相应菜单项功能相同,3、”选项”列每个菜单的选项列都有一个无符号按钮,单击出现”提示选项”对话框,主要属性:3、”选项”列每个菜单的选项列都有一个无符号按钮,单击出现”提示选项”对话框,主要属性:*快捷方式:指定菜单项的快捷键,方法鼠标单击”键标签”文本框,使光标定位于文本框.然后在键盘上按快捷键如CTRL+A,键说明可以修改.按空格键取消设定.*跳过:定义菜单项的跳过条件,指定一个表达式,表达式值决定菜单是否可选,表达式值为.T.,则菜单项以灰色显示,表示不可选用.*信息:定义菜单说明,指定一个字符串或表达式,当鼠标指向该菜单VF状态栏会显示该字符串或表达式“菜单设计器”的按钮:插入、插入栏、删除、预览、移动按钮.2、”显示”菜单在菜单设计器环境下,系统的”显示”菜单会出现两条命令:”常规选项”与”菜单选项”*”常规选项”可以定义整个下拉式菜单系统的总体属性.过程:为条形菜单指定过程代码.如果条形菜单中的某个菜单项没有规定具体的动作.则执行缺省过程代码.单击确定按钮可激活该文本编辑窗口.位置:指正在定义的下拉式菜单与当前系统菜单的关系.*”菜单选项”可以定义当前弹出式菜单公共过程代码,如果没有规定具体动作,那么将执行缺省代码.3、代码部分⑴MODIFYMENUCD1X打开“菜单设计器”⑵定义退出菜单:添加菜单名“退出(\R)”,“结果”列选择“过程”,单击“创建”打开文本编辑窗口,输入:SETSYSMENUNOSAVESETSYSMENUTODEFAULT⑶定义弹出式菜单WH:单击“数据维护”菜单项“结果”列上的“创建”按钮,设计器将切换到子菜单设计页,可设置子菜单。在“菜单名称”处输入名字,“结果”处选“命令”在后边文本框输入命令语句如:doxg.prg⑷定义菜单快捷键单击该菜单的“选项”列按钮,打开“提示选项”对话框。然后单击“键标签”文本框,在键盘上按CTRL+L⑸设置弹出菜单的内部名字:设计器状态时,“显示”菜单中选择“菜单选项”命令,打开对话框,在“名称”框中输入WH作为内部名字。(6)保存菜单定义:单击”文件”菜单中的”保存”按钮,结果保存在菜单定义文件cdlx.mnx和菜单备注文件cdlx.mnt中.(7)生成菜单程序:单击”菜单”菜单中”生成”命令.产生菜单程序文件cdlx.mpr例:创建可执行文件dapp.exe执行文件时首先在屏幕上显示一个下拉式菜单.当选择”统计人数”菜单项时,运行表单chopco.scx,当选择”查询选课”菜单项时,运行表单bgbd.scx,当选择”退出”菜单项时返回.操作过程:*打开”菜单设计器”窗口,定义下拉式菜单,主菜单”查询与统计”和”退出”,及”查询与统计”的下拉菜单”统计人数(命令,doformchopco)”和”查询选课(命令,doformbgbd)”*为菜单项”退出”设置过程代码:SetsysmenunosaveSetsysmenutodefaultClearevents*从”文件”菜单中选择”保存”命令,将菜单定义保存在文件cdlx2.mnx和cdlx2.mnt中,并生成菜单程序文件cdlx2.mpr*在命令窗口输入命令:Createprojectcdapp新建项目文件*为项目新建mp.prg,其代码如下:Docdlx2.mprReadevents*在”项目管理器”窗口中,单击”连编”按钮,打开”连编选项”对话框,在对话框中选择”连编可执行文件”单选按钮.单击”确定”,最后在打开的”另存为”对话框中指定可执行文件名cdapp.exe注:连编项目时,系统会自动将有调用关系的文件加入项目中.9.2.3用编程方式定义菜单无论条形菜单还是弹出菜单,都可以通过命令进行定义和设计.1、条形菜单定义①定义条形菜单命令格式:DEFINEMENU条形菜单名[BAR][IN[WINDOW]窗口名|INSCREEN]功能:DEFINEMENU:指定条形菜单的内部名字[BAR]:建立类似系统菜单行[IN[WINDOW]窗口名|INSCREEN]:指定菜单放置在哪个窗口或屏幕上.②定义条形菜单项命令格式:DEFINEPA菜单项名OF条形菜单名PROMPT字符表达式&&指定菜单项标题[BEFORE弹出式菜单名|AFTER弹出式菜单名]&&指定菜单项的位置[KEY键标签[,键说明]]&&指定快捷键[MESSAGE字符表达式]&&指定提示信息[SKIP[FOR逻辑表达式]]&&指定跳过条件[COLORSCHEME颜色配置号]&&指定颜色配置③指定菜单项的动作格式1:ONPAD条形菜单选项名OF条形菜单名1[ACTIVATEPOPUP弹出式菜单名|ACTIVATEMENU条形菜单名]功能:当条形菜单1中的指定菜单项被选中时,激活另一个条形菜单或者弹出式菜单.格式2:ONSELECTIONPAD条形菜单选项名OF条形菜单名[命令]功能:当条形菜单中的指定菜单项被选中时,执行指定命令.④激活条形菜单ACTIVATEMENU条形菜单名字[NOWAIT]&&显示和激活菜单后不等待[PAD条形菜单选项名]&&菜单激活时指定的菜单项自动被选中2、弹出式菜单定义①定义弹出式菜单命令格式:DEFINEPOPUP菜单名&&指定弹出式菜单的内部名字[SHORTCUT]&&用作快捷菜单[FORM行号,列号]&&菜单显示在左上角坐标[MARGIN]&&菜单项的两边是否放置一个空格[MESSAGE字符表达式]&&指定提示信息[RELATIVE]&&相对放置菜单选项[SCROLL]&&需要时出现滚动条[SHADOW]&&是否要阴影[COLORSCHEME颜色配置号]&&指定颜色配置②定义弹出式菜单菜单项命令:DEFINEBAR菜单项序号|系统菜单选项名OF弹出式菜单名&&指明是哪个弹出式菜单PROMPT字符表达式&&指定菜单项的标题[KEY键标签[,键说明]]&&指定快捷键[MESSAGE字符表达式]&&指定提示信息[SKIP[FOR逻辑表达式]]&&指定跳过条件③定义菜单项动作格式1:ONBAR弹出式菜单选项名OF弹出式菜单名1[ACTIVATEPOPUP弹出式菜单名2|ACTIVATEMENU条形菜单名]功能:当菜单名1中的指定菜单项被选中,激活另一个弹出式菜单或条形菜单.格式2:ONSELECTIONBAR弹出式菜单选项名OF弹出式菜单名[命令]功能:当弹出式菜单中的指定菜单项被选中时,执行指定的命令,也可以是DO命令,这样就能够执行一个过程或程序.④激活弹出式菜单ACTIVATEPOPUP弹出式菜单名字[NOWAIT]&&显示或激活菜单后不等待[BAR弹出式菜单选项号]&&菜单激活时光条定位于指定的菜单项上例:SETSYSMENUTOSETSYSMENUAUTOMATICDEFINEPAD_0CZ001VR1OF_MSYSMENUPROMPT“数据维护(\W)”COLORSCHEME3;ONPAD_0CZ001VR1OF_MSYSMENUACTIVATEPOPUPWHDEFINEBAR1OFWHPROMPT“录入记录”;KEYCTRL+L,”CTRL+L”DEFINEBAR2OFWHPROMPT“修改记录”;KEYCTRL+X,”CTRL+X”ONSELECTIONBAR1OFWHDOLR.PRGONSELECTIONBAR2OF
本文标题:第九章菜单设计与应用2
链接地址:https://www.777doc.com/doc-3079741 .html