300 likes | 404 Views
菜单和工具栏. 第 9 章 菜单和工具栏. 9.1 菜单概述. 9.2 一般菜单的创建与使用. 9.3 快捷的创建与使用. 9.4 为顶层表单添加菜单. 9.5 创建自定义工具栏. 小型案例和习题. 参考资料. 教学目的与要求. 了解设计菜单系统和工具栏的目的和设计原则. 掌握一般菜单、快捷菜单的设计方法. 掌握菜单程序的生成、运行的方法. 掌握恢复系统菜单的命令. 了解 SDI 菜单的创建方法. 了解将 SDI 菜单附加到顶层表单的方法. 了解自定义工具栏的创建. 9.1 菜单概述. 9.1.1 菜单结构. 什么是菜单?
E N D
第9章 菜单和工具栏 9.1 菜单概述 9.2 一般菜单的创建与使用 9.3 快捷的创建与使用 9.4 为顶层表单添加菜单 9.5 创建自定义工具栏 小型案例和习题 参考资料
教学目的与要求 了解设计菜单系统和工具栏的目的和设计原则 掌握一般菜单、快捷菜单的设计方法 掌握菜单程序的生成、运行的方法 掌握恢复系统菜单的命令 了解SDI菜单的创建方法 了解将SDI菜单附加到顶层表单的方法 了解自定义工具栏的创建
9.1 菜单概述 9.1.1 菜单结构 • 什么是菜单? • 菜单是一个应用系统的功能列表。 菜单
9.1 菜单概述 9.1.2 创建菜单步骤 规划菜单时一般考虑以下因素: (1)菜单系统的组织:一般考虑根据所要执行的任务来组织菜单系统,然后根据每个任务的功能层次来组织菜单项和子菜单。 (2)预先估计每个菜单和菜单项的使用频率,根据使用频率、逻辑顺序或者按照字母顺序来组织菜单。 (3)给每个菜单设置一个有意义的标题或者简短提示,便于用户准确的操作和使用菜单。 (4)对同一个菜单中的菜单项利用分组线设置逻辑分组。 (5)为菜单或者菜单项设置访问键或快捷键。 (6)菜单内容不宜太多。一个菜单的菜单项尽可能的控制在一个屏幕显示范围内。
9.2 一般菜单的创建与使用 9.2.1 创建菜单 例:设计一个具有“文件”和“浏览”两个主菜单的菜单文件,各主菜单及其包含的子菜单如表所示。
创建菜单栏 第一级菜单为菜单栏,在“菜单名称”下依次输入。 9.2 一般菜单的创建与使用 菜单栏级
创建子菜单与菜单分组 在“结果”列选择“子菜单”,然后单击“创建”按钮。 设置菜单热键或访问键使用(\<),菜单分组线使用(\-) 9.2 一般菜单的创建与使用 子菜单 菜单分组线 菜单热键
为菜单或菜单项指定任务 若“结果”列选择“命令”,则在后面的输入框中输入相应的命令;若选择“过程”,则在后面单击“创建”按钮。 9.2 一般菜单的创建与使用 “选项”按钮 子菜单项 “插入栏”按钮 命令
菜单的提示选项 单击“选项”按钮,出现“提示选项”对话框。在该对话框中可以设置快捷键和跳过条件等。 9.2 一般菜单的创建与使用 设置快捷键,按下要定义的键 “跳过”的条件是一个逻辑表达式,当条件为真时,则菜单废止,外观为灰色。
在子菜单中插入系统菜单栏 “菜单栏”是指VFP系统菜单中的菜单项。 单击“插入栏”按钮, 出现“插入系统菜单栏” 对话框中。 9.2 一般菜单的创建与使用 注意:菜单栏只能插入到子菜单中,插入时注意当前的菜单级
常规选项与菜单选项 “显示”菜单下有“常规选项”和“菜单选项”。 9.2 一般菜单的创建与使用 “显示”菜单 “菜单选项”对话框 “常规选项”对话框
“常规选项”主要用于为整个菜单系统指定代码和一些设置。“常规选项”主要用于为整个菜单系统指定代码和一些设置。 9.2 一般菜单的创建与使用 • 菜单代码:“设置”或“清理”分别用于编辑“初始化代码”或“清理代码” • 过程:单击“编辑”按钮,可以为菜单创建过程代码 • 位置:“替换”表示将新的菜单替换现有的菜单;“追加”表示将新的菜单追加到现有菜单的后面 • 顶层表单:选中,表示允许该菜单在顶层表单中使用 “初始化代码”放置在菜单程序文件中菜单定义的前面,在菜单产生之前执行, “清理代码”放置在菜单程序文件中菜单定义的后面,在菜单显示出来后执行。
“菜单选项”主要用于为当前指定的菜单级设置过程代码。“菜单选项”主要用于为当前指定的菜单级设置过程代码。 9.2 一般菜单的创建与使用 • 单击“编辑”按钮,即可输入过程代码 • 需要说明的是: • 如果菜单栏或者菜单项已设置了相应的任务(子菜单、命令或过程),则执行相应的任务,而忽略在“常规选项”和“菜单选项”中设置的过程代码;如果未设置相应的任务,而在 “常规选项”和“菜单选项”中都设置了过程代码,则执行“菜单选项”中的过程代码,而忽略在“常规选项”中设置的过程代码。
调试与运行菜单 在调试时,可随时预览或运行菜单。 在预览状态下,菜单所赋予的功能并不执行。 在运行菜单之前,必须先生成扩展名为(.MPR)的菜单程序文件。 9.2 一般菜单的创建与使用 9.2.2 保存及运行菜单 保存菜单:会生成两个文件,菜单文件(.MNX)和菜单备注(.MNT) “生成”菜单 • 菜单运行命令: DO 菜单文件名.MPR
配置VFP系统菜单的命令: SET SYSMENU ON|OFF|AUTOMATIC|TO <条形菜单名表> |TO <弹出式菜单名表>|TO [DEFAULT]|SAVE|NOSAVE 参数: ON: 在程序执行期间,启用VFP主菜单栏。 OFF: 在程序执行期间,废止VFP主菜单栏。 AUTOMATIC: 使VFP主菜单栏在程序运行期间可见。 TO[DEFAULT]: 不带DEFAULT 时,将废止主菜单栏;带DEFAULT时,恢复主菜单栏。 SAVE: 使当前菜单系统为系统默认设置。 NOSAVE: 重置菜单系统为默认的VFP系统菜单。 9.2 一般菜单的创建与使用 9.2.3 配置VFP系统菜单 • 恢复VFP系统菜单参数选项:SET SYSMENU TO DEFAULT
打开“菜单设计器”后执行系统菜单【菜单】下的【快速菜单】命令,则在“菜单设计器”中生成VFP系统菜单。打开“菜单设计器”后执行系统菜单【菜单】下的【快速菜单】命令,则在“菜单设计器”中生成VFP系统菜单。 9.2 一般菜单的创建与使用 9.2.4 创建快速菜单
例: 如图表单为读者信息浏览表单,该表单直接将数据环境中dz表中字段拖动并适当排列形成,为该表单创建图中所示的快捷菜单。 9.3 快捷菜单的创建与使用
创建快捷菜单并生成扩展名为MPR的生成程序。 然后选择某个对象的RightClick事件,输入执行菜单程序的代码即可。 9.3 快捷菜单的创建与使用 快捷菜单附加到对象上的方法是:
创建SDI菜单方法和创建一般菜单方法相同: 创建菜单时,利用【显示】→【常规选项】打开“常规选项”对话框,在该对话框中将“顶层表单”复选框选中。 将SDI菜单附加到顶层表单的方法是: 首先在表单设计器中修改表单的ShowWindows属性值为“2-作为顶层表单”,设置表单为顶层表单。 然后在表单的Init事件中添加如下代码: DO SDI菜单程序 WITH THIS,.T. 9.4 为顶层表单添加菜单 SDI菜单是指出现在单文档(Single Document Interface)窗口中的菜单,即出现在表单中的菜单。
9.4 为顶层表单添加菜单 例: 如图所示,创建一个设置表单背景色的SDI菜单。
工具栏是由直观形象的图标或其他对象组成的泊留或浮动于应用程序窗口的条状工具列表。工具栏是由直观形象的图标或其他对象组成的泊留或浮动于应用程序窗口的条状工具列表。 例:创建如图所示的自定义工具栏。 9.5 创建自定义工具栏
使用VFP提供的工具栏(ToolBar)基类,定义所需的工具栏类。使用VFP提供的工具栏(ToolBar)基类,定义所需的工具栏类。 9.5 创建自定义工具栏 实现步骤:
向工具栏类添加对象 除了表格以外,可以将表单控件工具栏上的所有其他控件添加到工具栏中。 工具栏上的对象用紧排方式排列在一起,可以在各个对象之间添加分隔符(Separater)控件,使得它们之间有一定的距离。 9.5 创建自定义工具栏
给控件事件添加代码。 9.5 创建自定义工具栏 InteractiveChange事件 : Obj2=_Screen.ActiveForm.ActiveControl Obj2.FontSize=THIS.Value InteractiveChange事件 : Obj1=_Screen.ActiveForm.ActiveControl IF THIS.Value="楷体" Obj1.FontName='楷体_GB2312' ELSE Obj1.FontName=THIS.Value ENDIF
先创建表单集,然后添加工具栏。 9.5 创建自定义工具栏
要点总结 菜单分两种:一般菜单和快捷菜单 为菜单设置分组线、热键、快捷键和跳过条件 在“常规选项”中设置菜单代码 菜单文件的扩展名.MNX、.MNT、MPR 运行菜单的命令:DO 菜单文件.MPR 恢复系统菜单的命令:SET SYSMENU TO DEFAULT 了解自定义工具栏的方法
练习题 一. 填空题 1. VFP的菜单有两种,即一般菜单和 ____________。 2. 用菜单设计器设计的菜单文件取名为mymenu,实际上VFP生成的两个文件是____________和____________,如果要运行该菜单,还须生成相应的菜单程序文件____________,运行该菜单程序的命令是________________。 3.恢复VFP系统菜单的命令是_____________________。 4. 如果要将一个SDI菜单附加到一个表单中,则表单必须是____________表单,并在表单的____________事件中调用菜单程序。 5.若要求在某按钮上右击鼠标出现菜单,则应在该命令按钮的____________事件中输入代码。 快捷菜单 Mymenu.mnt Mymenu.mnx Mymenu.mpr Do Mymenu.mpr Set sysmenu to default 顶层表单 init rightclick
第9章 习题 二、选择题 1. 在利用VFP菜单设计器设计菜单时,下列叙述中错误的是。 A.利用菜单设计器可以创建一般菜单和快捷菜单 B.用户可以将VFP系统菜单添加到自己设计的菜单中 C.在“提示选项”对话框中为菜单项设置快捷键时,只能使用Ctrl键与另一个字母键的组合 D.用户菜单可以设置为替换VFP系统菜单,也可设置为追加在VFP系统菜单之后 2.在某菜单中,有一菜单项显示为“Microsoft主页”(首字母M有下划线,即访问键为<Alt>+<M>),则在设计此菜单时,在该菜单名称中可输入。 A.Microsoft主页\<M B.(\<M)icrosoft主页 C.\<Microsoft主页D.M\<icrosoft主页 C C
参考资料 1 .崔建忠,单启成.2009.Visual FoxPro 实验指导书(2008 年版)苏州大学出版社. 2 .江苏省教育厅.2009.江苏省高等学校非计算机专业学生计算机基础知识和应用能力等级考试大纲 苏州大学出版社. 3 .教育部考试中心.2010.全国计算机等级考试二级教程——Visual FoxPro 数据库程序设计(2010 年版)高等教育出版社. 4 .教育部考试中心.2011.全国计算机等级考试二级教程——Visual FoxPro 数据库程序设计(2011 年版)高等教育出版社. 5 .卢湘鸿.2011.Visual FoxPro 6.0 数据库与程序设计.3 版 电子工业出版社. 6 .王能斌.2008.数据库系统教程.2 版.[M].北京:电子工业出版社. 严明,单启成.2010.Visual FoxPro 教程(2010 年版)苏州大学出版社. 7 .赵淑芬.2011.二级Visual FoxPro 数据库程序设计清华大学出版社. 8.江苏省教育厅《江苏省高等学校非计算机专业学生计算机基础知识和应用能力等级考试大纲》苏州大学出版社 2004.5 9. 史济民 主编《Visual FoxPro及其应用系统开发》2007.4 End