Download presentation
Presentation is loading. Please wait.
1
全国计算机等级考试 二级教程 ---Visual FoxPro6.0程序设计
主 讲:李富星 延安大学 计算中心
2
本章要求 懂得建立菜单系统(创建主菜单、创建子菜单、指定菜单项任务)。 编写简单的主程序调用和运行系统主菜单。
3
本章内容 9.1 Visual Foxpro 系统菜单 9.2 下拉菜单设计 9.3 快捷菜单设计 9.1.1 菜单结构
9.1.2 系统菜单 9.2 下拉菜单设计 9.2.1 菜单设计的基本过程 9.2.2 定义菜单 9.2.3 菜单系统的生成和运行 9.2.4 为顶层表单添加菜单 9.3 快捷菜单设计
4
9.1 Visual FoxPro系统菜单 9.1.1 菜单结构 9.1.2 系统菜单 9.1.3 菜单系统规划
菜单结构 系统菜单 菜单系统规划
5
菜单结构 菜单是应用程序的操作界面,又是程序设计者组织程序功能模块调用的一种结构形式,它能将程序中各种功能模块有机地组织在一起,使用户更加方便地使用应用程序。 各个应用程序的菜单系统内容可能是不同的,但其基本结构是相同的。菜单系统均由四大部分组成: 菜单栏(Menu Bar) 、菜单标题(Menu Title) 、菜单(Menu)、菜单项(Menu Item) 。
6
Visual Foxpro支持两种类型的菜单:条形菜单和弹出式菜单。
每一个条形菜单都有一个内部名字和一组菜单选项,每个菜单选项都有一个名称(标题)和内部名字。 每一个弹出式菜单也有一个内部名字和一组菜单选项,每个菜单选项则有一个名称(标题)和选项序号。 菜单项的名称显示于屏幕供用户识别,菜单及菜单项的内部名字或选项序号则用于在代码中引用。
7
每一个菜单选项都可以选择地设置一个热键和一个快捷键。 热键通常是一个字符,当菜单激活时,可以按菜单项的热键快速选择该菜单项。
快捷键通常是CTRL和另一个字符键组成的组合键。不管菜单是否被激活,都可以通过快捷键选择相应的菜单选项。 任何类型的菜单,当选择其中某个选项时,都会有一定的动作。这个动作可以是下列三种情况之一: 只有选项名:执行一条命令 还有省略号…执行一个过程 还有黑三角▲:激活另一个菜单
8
菜单系统MENU 菜单栏 条形菜单(菜单基)PAD 菜单选项BAR 弹出菜单(下拉菜单)POPUP 菜单提示信息
9
快捷菜单:一般有一个或一组上下级的弹出式菜单组成。
10
9.1.2 系统菜单 条形菜单中常见选项的名称和内部名字: 选项名称 内部名字 文件 _MSM_FILE 编辑 _MSM_EDIT 显示
系统菜单 条形菜单中常见选项的名称和内部名字: 选项名称 内部名字 文件 _MSM_FILE 编辑 _MSM_EDIT 显示 _MSM_VIEW 工具 _MSM_TOOLS 程序 _MSM_PROG 窗口 _MSM_WINDO 帮助 _MSM_SYSTM
11
弹出式菜单的内部名字: 弹出式菜单 内部名字 “文件”菜单 _MFILE “编辑”菜单 _MEDIT “显示”菜单 _MVIEW
“工具”菜单 _MTOOLS “程序”菜单 _MPROG “窗口”菜单 _MWINDO “帮助”菜单 _MSYSTM
12
“编辑”菜单(_MEDIT)中常见选项 选项名称 内部名字 撤消 _MED_UNDO 重做 _MED_REDO 剪切 _MED_CUT 复制
_MED_COPY 拈帖 _MED_PASTE 清除 _MED_CLEAR 全部选定 _MED_SLCTA 查找… _MED_FIND 替换… _MED_REPL
13
通过SET SYSMENU 命令可以允许或禁止在程序执行时访问系统菜单,也可以重新配置系统菜单:
SET SYSMENU ON|OFFF|AUTOMATIC |TO [<弹出式菜单名表>] |TO [<条形菜单项名表>] |TO [DEFAULT]|SAVE|NOSAVE 说明: ON:允许程序执行时访问系统菜单 OFF:禁止程序执行时访问系统菜单 AUTOMATIC:可使系统菜单显示出来,可以访问系统菜单 TO [<弹出式菜单名表>]:重新配置系统菜单,以内部名字列出可用的弹出式菜单 TO [<条形菜单项名表>]:重新配置系统菜单,以条形菜单内部名表列出可用的子菜单 TO DEFAULT:系统菜单恢复为缺省设置 TO SAVE:系统菜单恢复为缺省设置 TO NOSAVE:将缺省配置恢复成VISUAL FOXPRO系统菜单的标准配置
14
9.1.3 菜单系统规划 1. 设计原则 (1) 根据用户任务组织菜单系统 (2) 给每个菜单和菜单选项设置一个意义明了的标题
菜单系统规划 1. 设计原则 (1) 根据用户任务组织菜单系统 (2) 给每个菜单和菜单选项设置一个意义明了的标题 (3) 按照估计的菜单项使用频率、逻辑顺序或字母顺序组织菜单项 (4) 在菜单项的逻辑组之间放置分隔线 (5) 给每个菜单和菜单选项设置热键或键盘快捷键 (6) 将菜单上菜单项的数目限制在一个屏幕之内,如果超过了一屏,则应为其中一些菜单项创建子菜单。 (7) 在菜单项中混合使用大小写字母,只有强调时才全部使用大写字母。
15
9.2 下拉式菜单设计 9.2.1 菜单设计的基本过程 9.2.2 定义菜单 9.2.3 用编程方式定义菜单
9.2.4 在顶层表单中添加菜单
16
9.2.1 菜单设计的基本过程 调用菜单设计器 定义菜单 菜单文件(.mnx,.mnt) 生成菜单程序 菜单程序文件(.mpr)
运行菜单程序
17
设计步骤 打开菜单设计器; 填写菜单栏上的菜单基; 设置菜单基动作; 设置菜单基特性(热键、快捷键、备注信息等); 设计每一个下拉菜单:
填写下拉菜单中的菜单选项; 设置菜单选项的动作; 设置菜单选项特性(热键、快捷键、备注信息等); 保存菜单。 预览菜单; 生成菜单源程序文件(*.mpr)。
18
9.2.1 菜单设计的基本过程 1. 调用菜单设计器 在VFP中,新建菜单要通过菜单设计器来进行,打开菜单设计器的方法有两个:
选择“文件”菜单中的“新建”命令项,从“新建”窗口中选择“菜单”,然后选择“新建文件”或“向导”按钮,打开菜单设计器 从项目管理器中选择“其他”选项中的“菜单”选项,然后选择“新建”按钮打开菜单设计器。
19
2. 用菜单设计器创建菜单 打开文件菜单 → 新建 → 菜单 → 新文件 → 在菜单设计器中逐项设计所需菜单(或选择菜单中的快速菜单,生成通用的菜单)→ 预览 → 确定 → 关闭菜单设计器 → 给出文件名及保存位置 →从菜单菜单中选择生成…→在对话框中单击生成(可更改菜单程序文件的文件名和保存位置再生成)。 菜单设计器关闭后,系统产生两个文件: 菜单定义文件 扩展名为 .MNX 菜单备注文件 扩展名为 .MNT 从菜单菜单中选择生成后, 系统自动生成同名的菜单程序文件, 扩展名为 .MPR
20
3. 用命令创建菜单 ①命令格式: CREATE MENU [<菜单文件名> | ?] 功 能: 打开菜单设计器进行菜单设计 ②命令格式: MODIFY MENU [ <菜单文件名> | ? ] 功 能: 打开菜单设计器进行创建和修改菜单。 4、运行菜单程序 设计好菜单并生成菜单程序文件后, 即可从程序菜单中选执行…来执行此程序。 或 从命令窗口中输入: DO 菜单文件名 .MPR 运行菜单程序文件后, 系统又产生一个同名的编译后的程序文件, 扩展名为 .MPX
21
9.2.2 定义菜单 1、“菜单设计器”窗口 在Visual ForPro中,进入菜单设计器:
系统弹出“新建菜单”对话框,该对话框中有两项选择:菜单、快捷菜单,现选择“菜单”,屏幕即进入“菜单设计器”的界面,如图所示。 “菜单设计器”的界面由以下几部分构成:
22
(1)“菜单名称”框 在此栏里输入显示在菜单系统中的菜单的标题或菜单项的名称。如果用户想为菜单项加入访问鍵,即利用键盘访问菜单的方法,可以在欲设定为访问鍵的字母前面加上一反斜杠和小于号(\<)。例如,在“文件”菜单中设计访问键为“F”,只要在菜单名称“文件”的后面加上“(\<F)”即可。
23
(2)“结果”栏 此栏选定菜单项的功能类别。单击该栏将出现一个下拉框,有命令、子菜单、过程和填充名称或菜单项等四种选择。 (3)“选项”按钮 单击该按钮将打开一个“提示选项”对话框,可在其中为各菜单项设置各种属性。 (4) 菜单级 菜单系统是分级的,最高一级是菜单栏里的菜单,其次是每个菜单下的子菜单。从该下拉列表框中选择适当菜单级可以进行相应菜单的设计。 (5)“菜单项”命令按钮 提供设计菜单时的操作功能。在菜单项选项组中有三个命令按钮,即:插入、删除、插入栏。
24
(6)预览 显示所创建的菜单。一旦启动了菜单设计器,Visual FoxPro的系统菜单会多出一项 “菜单”,该菜单中集成了与菜单设计相关的菜单项,如图所示。
25
2、“显示”菜单 打开菜单设计器后,在系统的“显示”菜单中将增加“常规选项”菜单项,从中可以对菜单运行时作必要的设置。其中“位置”选项可以设置本菜单和原菜单的关系,一般选择“替换”。 “设置”和“清理”的作用。
26
3 定义菜单 现以一个简单的学生管理系统的菜单为例说明使用菜单设计器的一般方法。 1.创建主菜单
例 9.1 建立一个菜单文件,其名定义为“stu_menu”,其主菜单包含“系统管理”、“数据输入与维护”、“查询”、“报表”和“帮助”5个菜单选项。
27
操作步骤如下: (1) 打开“文件”菜单,选择“新建”,进入“新建”窗口。 (2) 在“新建”窗口,单击“菜单”,再按“新建文件”按钮,进入“新菜单”窗口。 (3) 在“新菜单”窗口,选择“菜单”,进入“菜单设计器”窗口 (4) 在“菜单设计器”窗口,定义主菜单中各菜单选项名。 (5) 保存菜单文件,文件名为“stu_menu.mnx”。
28
2. 创建子菜单 创建子菜单,实际上是给主菜单定义子菜单选项。当菜单栏内的菜单添加完成后,可以针对每一个菜单单击“创建”按钮来录入下一级菜单。一旦进入下一级菜单的设置,在“菜单级”框中显示的就不是“菜单栏”了,而是该下级菜单所对应的名称。 例 9.2 给“stu_menu.mnx”中各菜单选项创建子菜单。 操作步骤如下: (1) 打开菜单,进入“菜单设计器”窗口。 (2) 在“菜单设计器”窗口,选择主菜单选项中的“系统管理”,再选择“创建”按钮,进入“菜单设计器”子菜单编辑窗口。
29
(3) 在“菜单设计器”子菜单编辑窗口,定义“系统管理”选项中各子菜单选项名,如图所示。
(4) 在“菜单设计器”子菜单编辑窗口,定义“数据输入与维护”选项中各子菜单选项名。如图所示。
30
(5) 将以上菜单用“stu_menu”为名保存在相应的文件夹中,结束创建子菜单的操作。
3. 为菜单或菜单项指定任务 在创建菜单系统时,需要考虑系统访问的简便性,必须为菜单和菜单项指定所执行的任务,如指定访问键、添加键盘快捷鍵、显示表单、工具栏以及其他菜单系统。菜单选项的任务可以是子菜单、命令或过程。 注意:如果预计在若干个地方都会使用同样一组命令,则应编写一个过程。该过程必须在菜单清理代码或其他菜单、对象能引用的位置明确命名和编写。
31
单击菜单项的“创建”按钮,打开过程编辑器输入如下代码: CLOSE DATABASE ALL SET SYSMENU NOSAVE
为菜单项“退出”定义过程代码。 单击菜单项的“创建”按钮,打开过程编辑器输入如下代码: CLOSE DATABASE ALL SET SYSMENU NOSAVE SET SYSMENU TO DEFAULT &&恢复系统菜单 4. 设置常规选项与菜单选项 (1)“常规选项”对话框 “常规选项”是针对整个菜单的,它的主要作用: 其一,为整个菜单指定一个过程。 其二,可以确定用户菜单与系统菜单之间的位置关系。 其三,为菜单增加一个初始化过程和清理过程。
32
选择“显示”菜单中的“常规选项”命令,屏幕会出现的“常规选项”对话框。
(2)“菜单选项”对话框 当选择“查看”菜单中的“菜单选项”,显示 “菜单选项”对话框。该对话框中主要有两具功能: 一是为指定的菜单编写一个过程; 二是修改菜单项的名称。 5. 保存菜单 在菜单设计过程中,可以随时使用“预览”按钮预览所设计的菜单。菜单设计完成后,单击“文件”菜单中的“保存”按钮,结果保存在菜单定义文件stu_menu.mnx和备注文件stu_menu.mnt中。
33
6.生成菜单程序 用“菜单设计器”设计的菜单文件其扩展名为.MNX,通过生成器的转换,生成的菜单文件其扩展名为.MPR。 当.MNX类型文件转换成.MPR类型文件后,才可使用DO命令调用菜单文件。操作步骤如下: (1) 打开菜单(扩展名为.MNX)进入“菜单设计器”窗口; (2) 单击【菜单】|【生成】菜单项,打开“生成菜单”对话框,; (1) 输入菜单文件名(扩展名为.MPR),生成对应的菜单程序文件。
34
7.运行菜单 三种方式: (1)菜单方式:单击【程序】|【运行】菜单项,并选择需运行的菜单程序文件名; (2)命令方式:在命令窗口直接输入DO <菜单文件名.MPR>命令; (3)项目管理器方式:在“项目管理器”中选择相应菜单文件并单击“运行”按钮。
35
9.2.3 用编程方式定义菜单 1、条形菜单定义 2、弹出式菜单定义
36
9.2.4 在顶层表单中添加菜单 若要在顶层表单中添加菜单,可以按以下步骤操作:
在顶层表单中添加菜单 若要在顶层表单中添加菜单,可以按以下步骤操作: (1)在“显示”项中的“常规选项”对话框中选择“顶层表单”复选框,创建顶层表单的菜单; (2)将表单的ShowWindow属性设置为“2-作为顶层表单”; (3)在表单的Init事件中,运行菜单程序并传递两个参数: DO <文件名> WITH THIS[, “<菜单名>”] <文件名>:要执行的菜单程序文件名,必须加扩展名 .mpr。 <菜单名>:为别调用的菜单指定的内部名。
37
(4)在表单的Destory事件代码中添加清除菜单命令,使得在关闭表单时能同时清除菜单,释放其所占用的内存空间。
格式为: RELEASE MENU <菜单名>[EXTENDED] 其中的EXTENDED表示在清除条形菜单时一起清除其下属的所有子菜单。 【例9-3】在student.scx表单中建立一个如图所示的菜单。
38
操作步骤如下: (1)打开stu_menu.mnx菜单文件; (2)单击【显示】|【常规选项】菜单项,在“常规选项”对话框中选择“顶层表单”复选框; (3)单击“保存”按钮保存设计的菜单; (4)单击【菜单】|【生成】菜单项,打开“生成菜单”对话框; (5)在“生成菜单”对话框中确定菜单程序保存位置,单击“生成”按钮; (6)打开表单文件student.scx,并将其表单的ShowWindow属性设置为“2-作为顶层表单”; (7)在表单的Init事件代码中添加调用菜单程序的命令: DO stu_menu.mpr WITH THIS,’yyy’ (8)在表单的Destory事件代码中添加清除菜单命令: RELEASE MENU yyy EXTENDED
39
9.3 快捷菜单设计 下拉菜单做为一个应用程序的菜单系统,列出了应用程序所应具有的全部功能。快捷菜单一般从属与某个界面对象,当用鼠标单击对象时,就会在单击处弹出快捷菜单。快捷菜单通常列出与处理相应对象有关的一些功能命令。 快捷菜单没有条形菜单,只有弹出式菜单,对于快捷菜单而言,用户还可将若干选定的系统菜单项插入至自己的系统中。 在快捷菜单的“清理”代码中添加清除菜单的命令,使得在选择、执行菜单命令后能及时清除菜单,释放其所占用的内存空间。命令格式: RELEASE POPUPS<快捷菜单名>[EXTENDED] 在表单设计器环境下,选定需要添加快捷菜单的对象,在选顶对象的RightClick事件中添加调用快捷菜单的命令: Do < 快捷菜单程序文件名>
40
创建快捷菜单与创建下拉菜单的方法类似,主要步骤如下:
(1)打开“快捷菜单设计器”窗口。单击【文件】|【新建】|【菜单】|【新建文件】|【快捷菜单】菜单项或按钮,打开“快捷菜单设计器”窗口,其界面及使用方法与“菜单设计器”窗口完全相同。 (2)添加菜单项; (3)为每个菜单项指定任务; (4)在快捷菜单的“清理”代码中添加清除菜单的命令,使得在选择、执行菜单命令后能及时清除菜单,释放其所占用的内存空间。命令格式如下: RELEASE POPUPS <快捷菜单名> [EXTENDED] (5)保存菜单,并生成.MPR菜单文件; (6)将快捷菜单指派给某个对象,只需为该对象的“RightClick”事件编写如下代码:DO <快捷菜单程序文件名>,其中文件的扩展名.MPR不能省略。
41
【例9-4】为编辑框控件创建快捷菜单。 操作步骤: (1)打开“快捷菜单设计器”窗口,定义快捷菜单各选项的内容,如图9-16所示; (2)单击【显示】|【常规选项】菜单项,打开“常规选项”对话框; (3)选择“设置”复选框,打开“设置”代码编辑窗口,在窗口中输入接受当前表单对象引用的参数语句:PARAMETERS myform; (4)选择“清理”复选框,打开“清理”代码编辑窗口,在窗口中输入清除快捷菜单的命令: RELEASE POPUPS kjcd; (5)保存菜单,并生成kjcd.mpr菜单文件; (6)打开需要设置快捷菜单的表单,并将其“RightClick”事件代码设置成调用快捷菜单程序的命令。
Similar presentations