380 likes | 582 Views
第 9 章 菜单设计与应用. 本章要点. Visual FoxPro 系统菜单 下拉式菜单设计 , 新建菜单、定义菜单、运行菜单程序、测试菜单系统 快捷菜单设计 Visual FoxPro 系统概述。. 9.1 Visual FoxPro 系统菜单. 9.1.1 菜单结构. 1 .菜单类型 条形菜单 每一个条形菜单都有一个内部名字和一组菜单选项,每个菜单选项都有一个名称(标题)和内部名字。 弹出式菜单 每个弹出式菜单也有一个内部名字和一组菜单选项,每个菜单选项则由一个名称(标题)和选项序号。. 9.1.2 系统菜单. 1 .重新配置系统菜单
E N D
本章要点 • Visual FoxPro系统菜单 • 下拉式菜单设计,新建菜单、定义菜单、运行菜单程序、测试菜单系统 • 快捷菜单设计 • Visual FoxPro系统概述。
9.1.1 菜单结构 • 1.菜单类型 • 条形菜单 • 每一个条形菜单都有一个内部名字和一组菜单选项,每个菜单选项都有一个名称(标题)和内部名字。 • 弹出式菜单 • 每个弹出式菜单也有一个内部名字和一组菜单选项,每个菜单选项则由一个名称(标题)和选项序号。
9.1.2 系统菜单 • 1.重新配置系统菜单 • 命令格式: • SET SYSMENU ON|OFF|AUTOMATIC • |TO[<弹出式菜单名表>] • |TO[<条形菜单项名表>] • 命令说明: • TO<弹出式菜单名表>表示重新配置系统菜单,以内部名字列出可用的弹出式。 • TO<条形菜单项名表>表示重新配置系统菜单,以条形菜单项内部名表列出可用的子菜单。 • TO DEFAULT表示将系统菜单恢复为缺省配置。
1.新建菜单 • 方法: • 利用“项目管理器”新建菜单 • 在项目管理器中选择“其他”选项卡中的“菜单”,单击“新建”按钮调出“新建菜单”对话框。 • 利用菜单命令修改菜单 • 打开“文件”菜单,选择“新建”命令,弹出“新建”对话框;在对话框中选择“菜单”按钮,单击“新建文件”按钮,弹出“新建菜单”对话框;选择“新建菜单”按钮,调出“菜单设计器”窗口。 • 利用窗口命令修改菜单 • 命令格式:CREATE MENU [ FileName |?]
2.修改菜单 • 方法: • 利用菜单命令修改菜单 • 选择“文件”菜单中的“打开”命令,弹出“打开”对话框。 • 在“文件类型”中选择菜单(.MNX文件),然后选取文件,单击“打开”按钮弹出“菜单设计器”。 • 利用“项目管理器”修改菜单 • 在项目管理器中选择“其他”选项卡中的“菜单”。 • 选择所需修改的菜单,单击“修改”按钮弹出“菜单设计器”。 • 利用窗口命令修改菜单 • 命令格式:MODIFY MENU [ FileName |?]
3.定义菜单 • 方法: • 在“菜单设计器”窗口中定义菜单,指定菜单的各项内容。选择“文件”菜单中的“打开”命令,弹出“打开”对话框。 • 指定完菜单的各项内容后,应将菜单定义保存到.mnx文件中。 • 4.生成菜单程序 • 方法: • 在菜单设计器环境下,选择“菜单”菜单中的“生成”命令。 • 在“生成菜单”对话框中指定菜单程序文件的名称和存放路径。 • 单击“生成”按钮。
5.运行菜单程序 • 方法: • 使用命令“DO<文件名>”运行菜单程序,但文件名的扩展名.mpr不能省略。 • 6.测试菜单系统 • 方法: • 选择“菜单”中的“生成”。 • 在弹出的“生成菜单”对话框的“输出文件”框中输入生成的菜单程序的名称。 • 选择“生成”按钮,就会生成扩展名为 .mpr。 • “程序”菜单中,选择“运行”命令,或者单击工具栏上的“!”按钮,运行此程序。 • 使用set sysmenu to defa 恢复默认设置
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包括:新建、查看和替换三个选项,它们分别调用相应的系统功能。
操作步骤如下: • 单击“文件”下的“新建”命令,选择“菜单”后,单击“新建文件”,打开菜单设计器窗口。 • 设置条形菜单的主菜单项。 • 单击“数据编辑”菜单项“结果”列上的“创建”按钮,使设计器窗口切换到子菜单页,然后设置各菜单项 。 • 单击“退出”菜单项“结果”列上的“创建”按钮,打开文本编辑窗口,输入以下两行代码: • SET SYSMENU NOSAVE • SET SYSMENU TO DEFAULT
单击“输入记录”菜单项“选项”列上的按钮,打开“提示选项”对话框,单击“键标签”文本框,并在键盘上按组合键CTRL+S;用同样的方法分别为修改记录和查看记录设置快捷键。 • 选择“显示”菜单中的“菜单选项”命令,打开“菜单选项”对话框,然后在“名称”框中输入sjbj,再从“菜单级”列表框中选择“菜单栏”选项,返回到主菜单项。 • 单击“数据维护”菜单项“结果”列上的“创建”按钮,切换到子菜单页;单击“插入栏”按钮,打开“插入系统菜单栏”对话框;从对话框的列表框中选择“新建”项并单击“插入”按钮,用同样方法插入“查找”和“替换”项。 • 为弹出式菜单设置内部名字 。 • 单击“文件”菜单中的“保存”按钮,结果保存在菜单定义文件cd1.mnx和菜单备注文件cd1.mnt中。 • 单击“菜单”菜单中的“生成”命令,生成的菜单程序文件为cdl.mpr。
9.2.3编程方式定义菜单 • 1.定义条形菜单 • 命令格式: • DEFINE MENU<条形菜单名> • && 定义条形菜单的内部名字 • [BAR] • [IN [WINDOW] <窗口名>/IN SCREEN] • && 指定菜单放置在哪个窗口或屏幕上
定义条形菜单项的命令格式: • DEFINE PAD<菜单项名字 >OF <条形菜单名 > • PROMPT< 字符表达式> • && 指定菜单项的标题 • [BEFORE< 弹出式菜单名字> • && 指定菜单项的位置 • /AFTER< 弹出式菜单名字>] • [KEY<键标签 >[,<键说明 >]] • && 指定快捷键 • [MESSAGE<字符表达式 >] • && 指定提示信息 • [SKIP [FOR< 逻辑表达式>]] • && 指定跳过条件 • [COLOR SCHEME<颜色配置号 >] && 指定颜色配置
指出菜单项动作 • 格式1: • ON PAD<条形菜单选项名>OF<条形菜单名1>ACTIVATE POPUP<弹出式菜单名>/ACTIVATE MENU<条形菜单名2>] • 格式2: • ON SELECTION PAD<条形菜单选项名>OF<条形菜单名>[<命令>] • 激活条形菜单 • ACTIVATE MENU<条形菜单名字>[NOWAIT] && 显示和激活菜单后不等待[PAD<条形菜单选项名>]
2.定义弹出式菜单 • 定义弹出式菜单命令格式: • DEFINE POPUP<菜单名> • && 指定弹出式菜单的内部名字 • [SHORTCUT] • && 用作快捷菜单 • [FROM<行号>,<列号>] • && 菜单显示的左上角坐标 • [MARGIN] • && 菜单项的两边是否放置一个空格 • [MESSAGE<字符表达式>]
[RELATIVE] • && 相对放置菜单选项 • [SCROLL] • && 需要时出现滚动条 • [SHADOW] • && 是否要阴影 • [COLOR SCHEME<颜色配置号>]
定义弹出式菜单项命令格式: • DEFINE BAR<菜单项序号>/<系统菜单选项名> • OF<弹出式菜单名> • && 指明是哪个弹出式菜单的选项 • PROMPT<字符表达式> • [KEY<键标签>[,<键说明>]] • [MESSAGE<字符表达式>] • [SKIP[FOR<逻辑表达式>]] • 定义菜单项动作 • 格式1: • ON BAR<弹出式菜单选项名>OF<弹出式菜单名1>
[ACTIVATE POPUP<弹出式菜单名2>/ACTIVATE MENU • <条形菜单名>] • 格式2: • ON SELECTION BAR<弹出式菜单选项名>OF<弹出式菜单名>[<命令>] • 激活弹出式菜单 • ACTIVATE POPUP<弹出式菜单名字> [NOWAIT] • && 显示和激活菜单后不等待 • [BAR<弹出式菜单选项号>]
9.2.4为顶层表单添加菜单 • 1.方法: • 在“菜单设计器”窗口中设计下拉式菜单。 • 菜单设计时,选择“常规选项”对话框中的“顶层表单”复选框。 • 在表单设计器环境下,将表单的ShowWindow属性值设置为2,使其成为顶层表单。 • 在表单的Init事件代码中添加调用菜单程序的命令,格式如下:DO〈文件名〉WITH This [,“〈菜单名〉”] • 在表单的Destroy事件代码中添加清除菜单的命令,使得在关闭单表时能同时清除菜单,释放其所占用的空间。
例如,为第8章中创建的统计学生人数表单建立一个下拉式菜单,如图9.1所示。例如,为第8章中创建的统计学生人数表单建立一个下拉式菜单,如图9.1所示。 • 其中,“统计”菜单中仅有一个菜单项“统计人数”,功能与表单中的“统计”命令按钮的功能相同。
操作步骤: • (1)打开“菜单设计器”窗口,定义下拉式菜单,formtj是表单文件的文件名。 • (2)选择“显示”子菜单中的“常规选项”,打开该对话框,选择“顶层表单”复选框。 • (3)选择“文件”菜单中的“保存”命令,将菜单定义保存在文件bdcd.mnx和bdcd.mnt中,并生成菜单程序文件bdcd.mpr。 • (4)将表单文件formtj.scx的ShowWindow属性值设置为2,使其成为顶层表单。 • (5)在表单的INIT事件代码中添加调用菜单程序的命令: • DO bdcd.mpr WITH THIS,’xxx’
1.建立快捷菜单 • 方法: • 选择“文件”菜单中的“新建”命令。 • 选择“新建”对话框中的“菜单”按钮,单击“新建文件”按钮。 • 选择“新建菜单”对话框中的“快捷菜单”按钮,打开“快捷菜单设计器”窗口。 • 在“快捷菜单设计器”窗口中设计快捷菜单,单击“菜单”下的“生成”命令,生成菜单程序文件。 • 在表单设计器环境下,选定需要添加快捷菜单的对象。 • 在属性窗口的方法程序列表框中,双击“RightClick Event”项,在选定对象的RightClick事件代码中添加调用快捷菜单程序的命令:DO〈快捷菜单程序文件名〉
例如:为某表单建立一个快捷菜单KJCD,其选项有:日期、时间、放大和缩小,时间与放大之间用分组线分隔,如下图所示。选中日期或时间选项时,表单标题将变成当前日期或时间。选中变大或变小选项时,表单大小将缩放百分之十。例如:为某表单建立一个快捷菜单KJCD,其选项有:日期、时间、放大和缩小,时间与放大之间用分组线分隔,如下图所示。选中日期或时间选项时,表单标题将变成当前日期或时间。选中变大或变小选项时,表单大小将缩放百分之十。
快捷菜单各选项的名称(标题)和结果如下表所示。快捷菜单各选项的名称(标题)和结果如下表所示。
操作步骤: • (1)打开“快捷菜单设计器”窗口,按表所列的内容定义快捷菜单中各选项的内容。 • (2)选择“显示”菜单中的“常规选项”命令,打开“常规选项”对话框。 • (3)依次选择“设置”和“清理”复选框,打开“设置”和“清理”代码编辑窗口,快捷菜单的“设置”代码是一条接收当前表单对象引用的参数语句: • PARAMETERS MFREF • (4)快捷菜单的“清理”代码中包含清除快捷菜单的命令: • RELEASE POPUPS kjcd • (5)选择“显示”菜单的“菜单选项”命令,打开“菜单选项”对话框,在“名称”框中输入快捷菜单的内部名字kjcd。
操作步骤: • (6)单击“文件”菜单中的“保存”按钮,将结果保存在菜单定义文件kjcd.mnx和菜单备注文件kjcd.mnt中。 • (7)单击“菜单”菜单中“生成”命令,产生快捷菜单程序文件kjcd.mpr。 • (8)打开标题为“快捷菜单”的表单,在表单的RightClick事件代码中添加调用快捷菜单的命令: • DO kjcd.mpr WITH This