搜档网
当前位置:搜档网 › 第9章 菜单设计方法

第9章 菜单设计方法

第9章 菜单设计方法
第9章 菜单设计方法

第9章菜单设计方法

9.1 学习指导

9.1.1 基本概念

1.菜单结构

(1)菜单组成

Visual FoxPro支持两种类型的菜单,即条形菜单和弹出式菜单,其中:

每个菜单由一个内部名字和一组菜单选项组成。

条形菜单的菜单选项由一个名称(标题)和内部名字组成。

弹出式菜单的菜单选项由一个名称和选项序号组成,

(2)热键的快捷键

热键通常是一个字符,当菜单激活时,可以按菜单项的热键快速选择该菜单。

快捷键通常由Ctrl或Alt和另一个字符组成,不论菜单是否激活,都可以通过快捷键选择相应的菜单选项。

(3)菜单选项产生的动作

选择菜单中某个选项时会产生如下情况之一的动作。

●执行一条命令。

●执行一个过程。

●激活另一个菜单。

(4)菜单系统的组成

菜单系统一般是一个下拉式菜单,由一个条形菜单和一组弹出式菜单组成。条形菜单作为主菜单,弹出式菜单作为子菜单。当选择一个条形菜单选项时,激活相应的弹出式菜单。

(5)快捷菜单

快捷菜单一般是由一个或一组上下级弹出式菜单组成。

9.1.2 基本操作

1.定义菜单

在菜单设计器中,指定菜单的各项内容,完成后保存到.MNX文件中。

(1)指定菜单名,即用于显示的标题。

(2)结果:指定当用户选择该菜单项时的动作,共有四种选择:

①命令:选择此项时,可在该右侧命令的文本框内输入具体命令,当选择该菜单项时,将执行所输入的命令。

②过程:选择此现时,可在该右侧出现“创建”按钮,单击此按钮后,可以打开文本编辑窗口,可在该窗口中输入和编辑过程代码。当选择该菜单项时,将执行已输入的过程代码。

③子菜单:选择此项时,可在该项右侧出现“创建”按钮,单击此按钮后,菜单设计窗口切换到子菜单项,可以在其中定义子菜单。当选择该菜单时,将激活指定的子菜单。

④填充名称:选择此项时,可在该项右侧出现文本框,在该文本框内输入菜单项的内部名称或序号。

若当前定义的是条形菜单,该选项为“填充名称”,应指定菜单项的内部名字。

若当前定义的是弹出式子菜单,该选项为“菜单级”,应指定菜单项的序号。

(3)选项:“选项”列出一个无符号的按钮,单击此按钮会出现“提示选项”对话框,在该对话框中,可以设置快捷方式、跳过及信息等。

2.生成菜单程序

执行菜单设计中的“菜单”菜单中的“生成”命令,生成菜单程序文件(.MPR文件)。

3.运行菜单程序

在命令窗口中运行菜单程序:DO <文件名.MPR>

9.1.3 相关命令

创建菜单:CREATE MENU [<菜单文件名>|?]

打开菜单:MODIFY MENU<菜单文件名>

配置系统菜单的命令格式:SET SYSMENU ON | OFF | TO | AUTOMA TIC

| TO [<弹出式菜单名表>]

| TO [<条形菜单名表>]

| TO [DEFAULT] SA VE | NOSA VE

运行菜单:DO <菜单文件名.MPR>

9.2 例题解析

9.2.1 选择题

【例9-1】在Visual FoxPro中,菜单文件的扩展名为。

A).MNX B).MNT C).IDX D).PJT

【答案】A

【解析】在Visual FoxPro中,菜单文件的扩展名为.MNX。

【例9-2】设计菜单要完成的最终操作是。

A)创建主菜单及子菜单B)指定各菜单任务

C)生成程序文件D)浏览菜单

【答案】C

【解析】菜单定义文件存放着菜单的各项定义,但该文件不能运行,只有根据菜单定义产生的菜单程序文件,才能最后被使用。

【例9-3】用户可以在菜单设计器窗口右侧的列表框中查看菜单项所属的级别。A)菜单项B)插入C)菜单级D)浏览

【答案】C

【解析】用户可以在菜单设计器窗口右侧的菜单级列表框中查看菜单项所属的级别,也可以在此列表框中选择要编辑的菜单级。

9.2.2 填空题

【例9-4】命令SET SYSMENU TO DEFAULT的作用的将设置为默认菜单。

【答案】系统主菜单

【解析】在“结果”列的下拉列表框中选择“命令”按钮,在它后面的文本中输入该命令,此命令的作用是关闭应用程序菜单之后打开主菜单。

【例9-5】设计菜单最终要完成的操作是。

【答案】生成菜单程序

【解析】菜单定义文件中存放的是菜单的各项定义,但是并不能运行,必须根据此菜单定义文件生成菜单程序文件,才能最后使用。

9.2.3 操作题

【例9-6】建立一个简单的学生数据库菜单,如图9-1所示。

图9-1 菜单

【操作步骤】

1.新建一个菜单文件,如图9-2所示。

图9-2 新建菜单文件

2.打开菜单设计器,设计菜单栏,如图9-3所示。

图9-3 菜单设计器

3.“数据编辑”子菜单编辑,如图9-4所示。

图9-4 “数据编辑”子菜单设计4.“数据查询”子菜单编辑,如图9-5所示。

图9-5 “数据查询”子菜单设计5.“数据报表”子菜单编辑,如图9-6所示。

图9-6 “数据报表”子菜单设计

6.“退出”子菜单编辑,如图9-7所示。

“返回系统”的命令为:set sysmenu to default

图9-7 “退出”子菜单设计

7.生成菜单设置,如图9-8所示。

各级菜单定义完成以后,回到菜单设计器的主界面,选择系统菜单栏的“菜单”,单击“生成”按钮,这时会出现“生成菜单”,如图9-18所示。在此对话框中单击“生成”按钮,系统自动生成这个菜单的程序代码,并以.MPR保存。

图9-8 生成菜单对话框

8.运行此菜单。

9.3 习题

9.3.1 选择题

1.在一个系统中,使用多个对象协调工作,可以使用。

A、工具栏

B、菜单栏

C、用事件

D、命令按钮组

2.将一个预览成功的菜单存盘,再运行该菜单却不能运行,是因为。

A、要编入程序

B、没有生成代码

C、要用命令的方式

D、没有放到项目中

3.在菜单设计器环境下,“显示”菜单会出现命令。

A、常规选项,菜单选项

B、常规选项,系统菜单选项

C、常规选项,下拉菜单选项

D、常规选项,弹出菜单选项

4.在为顶层表单添加下拉式菜单的过程中,需将表单的Show Windows属性设置为使其成为顶层菜单。

A、0

B、1

C、2

D、3

5.创建弹出式菜单项可以使用命令。

A、DEFINE PAD

B、DEFINE BAR

C、READ MENU

D、DEFINE POPUP

6.在命令窗口中,可用DO命令运行菜单程序的文件扩展名是。

A、.FMT

B、.FRM

C、.MNX

D、.MPR

7.要使“文件”菜单项可以用“F”作为访问快捷键,可用定义改菜单标题。A、文件(F)B、文件(<\F)C、文件(\

8.下列不属于“菜单设计器”窗口左侧列表框中所包括的内容。

A、菜单项

B、菜单级

C、预览

D、菜单名称

9.不是标准菜单系统的组成部分。

A、选项

B、文件

C、菜单名称

D、结果

10.在命令窗口输入CERATE MENU的作用是用命令方式打开。

A、项目管理器

B、表单设计器

C、菜单设计器

D、报表设计器

9.3.2 填空题

1.设计系统菜单,可以通过完成。

2.菜单栏是用于放置菜单的。

3.要查看所设计菜单的结果,可以选择菜单设计器的“预览”和程序菜单的命令。4.可以运行的菜单程序代码文件以扩展名保存。

5.要将某个弹出式菜单作为一个对象的快捷菜单,通常是在对象的事件代码中添加调用该弹出式菜单程序的命令。

附习题答案:

9.3.1选择题

1.B 2.B 3.A 4.C 5.B

6.D 7.C 8.B 9.B 10.C

9.3.2填空题

1.快捷菜单

2.多个菜单项

3.运行

4..MPR

5.RightClick

9.4教材习题答案

一、选择题

1.D 2.C 3.C 4.A 5.B

6.D 7.D 8.C 9.A 10.B

二、填空题

1.DO mymenu.mpr

2.RIGHT CLICK

3.SYSMENU

4.\-

三、操作题

1.①新建一个菜单文件,在“菜单栏”设计如图图9-9:

图9-9 菜单栏设计

②设计子菜单:

(1)创建“图书管理”—“结果”—“子菜单”,设置如图9-10:

图9-10 “图书管理”子菜单设计

(2)回到“菜单栏”:菜单级—“菜单栏”

创建“读者管理”—“结果”—“子菜单”,设置如图9-11:

图9-11 “读者管理”子菜单设计

(3)回到“菜单栏”:菜单级—“菜单栏”

创建“统计管理”—“结果”—“子菜单”,设置如图9-12:

图9-12 “统计”子菜单设计

(4)回到“菜单栏”:菜单级—“菜单栏”

创建“退出”—“结果”—“子菜单”,设置如图9-13:

图9-13 “退出”子菜单设计

③生成菜单的可执行文件,如下图9-14:

图9-14 生成

④运行

2.①新建一个快捷菜单KJMENU,按要求设置菜单,如图9-15:

字体菜单命令可参考:myform.fontname="宋体"

字号菜单命令可参考:myform.fontsize=12

图9-15 快捷菜单设计

②执行“显示”菜单—“常规选项”,打开其对话框,在“设置”代码窗口输入:parameters myform,,指定快捷菜单中引用的表单名;在“清理”代码窗口中输入:release popups kjmenu。

③执行“菜单”—“生成”,生成菜单程序文件mymenu.mpr;

④新建一个表单,以“myform”文件名保存,在表单上添加一个编辑框控件、一个命令按钮,在编辑框控件的RightClick事件代码中输入:do kjmenu.mpr with this;在命令按钮的click 事件代码中输入:Thisform.release;

⑤运行表单。

9.5 实验题

1、设计一个教学管理系统,其包含的主要功能模块和结构如下图:

2、设计一个学生管理信息系统设计顶层表单(添加菜单)。

9.6 实验题答案

1、新建一个菜单文件,在“菜单栏”设计主菜单,如图9-16所示

图9-16 菜单栏定义

(2)单击“维护”菜单后的“创建”按钮,定义“维护”子菜单,如图9-17所示,指定各个菜单选项为“过程”,单击“创建”按钮,输入打开相应表并进行处理的过程代码。

图9-17 “维护”子菜单

“学生维护”菜单选项的过程代码:

use student

browse

use

“课程维护”菜单选项的过程代码:

use course

browse

use

“成绩维护”菜单选项的过程代码:

use score

browse

use

(3)返回菜单栏定义窗口,用相同的方法定义“查询”子菜单,将前面设计的表单用“do form <表单名>”命令、报表用“report form <报表名>”进行调用,如图9-18。

图9-18 “查询”子菜单

(4)返回菜单栏定义窗口,定义“退出”子菜单,如图9-19所示。

图9-19 “退出”子菜单

“返回系统”—“过程”代码为:

set sysmenu to default

clear events

(5)执行系统“菜单”下的“生成”命令,生成菜单程序文件,然后执行菜单程序文件,如图9-20所示。

图9-20 菜单程序运行结果

2、(1)将menu.mnx(建立方法见【例9-13】)菜单系统的“显示”菜单下的“常规选项”对话框打开,选中“顶层表单”,然后重新“生成”菜单。

(2)创建标题表单mailform.scx。设置其Caption属性为“学生管理信息系统”,ShowWindow 属性为:“2-作为顶层表单”。

(3)在表单的Init事件代码中输入如下代码:

DO menu.mpr WITH THIS, .T.

(4)运行mainform.scx,得到如图9-21所示窗口。

图9-21 顶层表单

相关主题