版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第9章 菜单 菜单是PowerBuilder系统创建交互式应用程序最重要的对象之一。除了子窗口和响应窗口外,其它窗口都可以拥有菜单,用户可以通过选择菜单项完成所需功能。 9.1菜单的基本概念 9.1.1 菜单的基本组成 菜单(Menu):应用或窗口中供用户选择命令和选项的列表。菜单中的选项通常就是相关的命令,与工具栏上相应的按钮有相同的功能。菜单栏(Menu Bars):窗口上部的条形栏,栏中横向显示可选择的菜单项。菜单项(Menu Item):菜单中可以选择的项,菜单项可以是菜单栏、下拉菜单或级联菜单中的一项。菜单项是构成菜单的最小单位。菜单项由三部分组成:文本、名称和脚本。文本是显示在屏幕
2、上的内容,可以是文字、字符或符号,名称标识菜单项,供程序设计者使用,默认的名称前缀是m_。工具栏(Tools Bar):由图标按钮组成的栏,每个图标都对应一个菜单项。 结束放映第一页上一页下一页最后一页9.1.2 菜单的类型(1)下拉菜单下式菜单出现在某个菜单项下面,通过点击鼠标访问,也可在按下Alt键的同时按下带有下划线的字符来访问。(2)级联菜单级联菜单一般都从属一个父菜单项,通常在父菜单项的右边有一个向右的箭头,通过单击这个右箭头就可以访问级联菜单。9.1.3 菜单的特征 访问菜单中的菜单项一般通过点击鼠标来完成,有时也可通过键盘的动作来触发;菜单项一般用于执行命令,有时是为了表示一种状
3、态(选中和未选中)有的菜单项前面带有符号()。 使用键盘访问菜单项,可通过加速键或快捷键来完成。(1)加速键加速键以带下划线的字母表示;当菜单项已经显示出来的情况下,可以按加速键快速访问相应的菜单命令,加速键使得通过键盘使用菜单更方便。(2)快捷键快捷键无需打开菜单,即在菜单项并不显示出来的情况下,就可以使用相应键盘按键的组合执行菜单命令;对于使用频繁的菜单命令就可以设置快捷键。 结束放映第一页上一页下一页最后一页9.1.4 设计一个菜单 使用PowerBuilder环境中的菜单画板,可以自由地设计菜单,为方便用户,在设计时应遵循如下约定。(1)应尽量避免罗列多级菜单。(2)菜单应尽可能简单一
4、致。(3)相关菜单项应放在一个下拉菜单中,以便于记忆和使用。(4)为菜单项定义加速键和快捷键,为菜单项定义相应的工具栏图标按钮。(5)在创建菜单前,决定菜单项应何时被选中,何时不可见,或不可用,并在应用中给予适当的提示。(6)应使用标准的加速键、快捷键和工具栏。如按下F1键,即可打开帮助文件。(7)尽量使用分隔符“-”和省略号“”。将功能相关的选项划分在一个区域内;若选项的执行结果是打开另一个窗口或对话框,那么选项的名称最好以省略号结尾。 结束放映第一页上一页下一页最后一页9.2 创建菜单 9.2.1 进入菜单画板 (1)选择菜单【File|New】,在出现的对话框中选择PBObject标签页
5、。(2)在PowerBuilder Object标签页中,选择Menu图标后,再选择菜单所在的目标文件后,点击OK按钮。 默认的菜单画板有四个视窗,分别是WYSIWYG视窗、Tree视窗、Properties视窗和Scipt视窗。WYSIWYG(What You See Is What You Get)视窗使得开发人员在设计时看到的菜单和运行时的菜单一样;Tree视窗是以树状的形式表示菜单之间的级联关系。在创建和修改菜单时,在这两个窗口中进行的操作是等同的,在WYSIWYG中修改与在Tree中修改是一样的。Properties视窗用于定义菜单项的属性,Scipt视窗用于编写程序脚本。 菜单窗口
6、如下页图所示。结束放映第一页上一页下一页最后一页9.2.1 进入菜单画板结束放映第一页上一页下一页最后一页9.2.2 创建一个新菜单 创建一个新菜单的步骤如下:(1)进入菜单画板。(2)添加菜单条上的菜单项。(3)添加下拉菜单项。(4)添加级联菜单项。(5)为菜单项定义属性(6)编写脚本(7)保存菜单9.2.3 在当前菜单项下添加同级菜单项 (1)添加菜单条中的第一项在WYSIWYG视窗中,选择untitled,点击右键,在弹出的快捷菜单中选择Insert Submenu Item菜单项。在出现的空白方框内输入要显示的文本。然后按回车。若按下Tab键,可添加同级其它菜单项。 结束放映第一页上一
7、页下一页最后一页9.2.3 在当前菜单项下添加同级菜单项选择菜单栏中的某项后,点击右键选择Insert Menu At End或Insert Menu Item菜单项,输入显示文本即可。 9.2.4 在当前菜单项下添加子菜单项选择某个菜单项后,点击右键选择Insert SubMenu Item,就会在当前菜单项下添加一个子菜单。同9.2.3节。9.2.5 删除菜单项选择某个菜单项后,点击右键,选择Delete菜单项,就会删除当前菜单项。9.2.6 添加下拉菜单项添加方法如同9.2.4节所述。项目深入一个层次,出现在菜单栏某个菜单项下面。9.2.7 添加级联菜单项添加方法如同9.2.4节所述。项
8、目深入两个层次,也称二级菜单。结束放映第一页上一页下一页最后一页9.2.8 通过继承创建一个菜单 1继承菜单(1)选择菜单【File|Inherit】。(2)在出现的对话框中选择要继承的菜单名,点击OK按钮。(3)所选菜单显示在菜单画板中,画板标题表明该菜单是一个后代菜单。随后对其进行必要的修改。(4)保存所继承的菜单。 2继承信息的使用后代菜单继承了父菜单的事件、风格、函数和脚本等全部内容。(1)在后代菜单中可以做的事在菜单中添加菜单项; 修改菜单项的属性,如修改菜单项显示的文本及可 用性等;扩展或取代继承来的菜单对象的脚本;可以为没有脚本的菜单编写脚本;可以为菜单声明变量、函数和结构。 (
9、2)在后代菜单中不能做的事不能改变继承来的菜单项之间的前后顺序,可以在它们之间插入新的菜单项,但必须保持原来菜单项的顺序;继承来的菜单不能被删除;不能修改继承来的菜单项的名称;不能改变继承来的菜单项的类型。结束放映第一页上一页下一页最后一页9.2.8 通过继承创建一个菜单3在后代菜单中插入菜单项新继承来的菜单只能在菜单项的最后添加菜单项,不能在菜单项中插入新的菜单项,若非要插入新的菜单项,那么从插入菜单项的位置至以后的各菜单项的属性都要选择ShiftToRight复选框,然后再采用前面介绍的方法进行菜单项的插入。9.3 设置菜单属性 通过对菜单项属性的设置,指定菜单对象的外观和行为,每个菜单项
10、属性视窗都包含General和Toolbar两个标签页。9.3.1 给菜单命名 给菜单命名有两个方面的目的,一是将名称显示在屏幕上给用户看,作为默认菜单显示文本;二是提供给编程者使用,以便在脚本中区别菜单项,称为菜单的名称。(1)菜单的名称菜单的名称一般由两部分组成,第一部分是系统指定的前缀m_,第二部分是一个合法的标识符。菜单项的名称是唯一的,并且不能为空白,否则菜单不能保存。结束放映第一页上一页下一页最后一页9.3.1 给菜单命名(2)菜单的文本Text文本框中设置菜单项显示的文本。任何时刻都可修改菜单项的文本。 9.3.2 设置菜单提示信息通过设置菜单项的Microhelp属性,给菜单项
11、添加提示。该属性只有在菜单嵌入MDIHelp类型的窗口中才起作用。当点击菜单项时,在窗口底部的状态栏中显示对应菜单项的Microhelp属性中的内容。9.3.3 设置菜单可访问性 菜单的访问性主要由Visible、Enabled和Checked这三个属性决定。(1)Visible复选框:决定菜单项是否可见。可通过属性设置或脚本控制来完成。 通过属性设置:若Visible复选框未被选中,则该菜单项不可见,在该菜单项之后的菜单项位置依次提前。 通过脚本控制:赋值语句:菜单名.菜单项名.visible=true使菜单项可见;赋值语句:菜单名.菜单项名.visible=false使菜单项不可见。如:m
12、_menu.m_菜单.m_创建菜单.visible=false,表示m_memu.m_菜单.m_创建菜单项不可见。 结束放映第一页上一页下一页最后一页9.3.3 设置菜单可访问性(2)Enabled复选框:决定某个菜单项是否可用,即点击这个菜单项是否执行它的脚本。若菜单项被设置为不可用,则它的文本呈灰色。也可以通过属性设置或脚本控制来完成。 通过属性设置:若Enabled复选框未被选中,则该菜单项就不可用,呈灰色显示。 通过脚本控制:赋值语句:菜单名.菜单项名. Enabled =true使菜单项可用;赋值语句:菜单名.菜单项名. Enabled =false使菜单项不可用。如:m_menu.
13、m_菜单.m_创建菜单. Enabled =false,表示m_memu.m_菜单.m_创建菜单项不可用,呈灰色显示。(3)Checked复选框:实际应用中,使用带有标志的菜单项来表示选中和未选中两种状态。如PowerBuilder系统中,Window菜单的Output菜单项前面有符号,表示已经显示Output视窗,点击Output菜单项,其前面的符号会消失,再点击又会出现,Output视窗也会跟着显示和消失。这种形式的菜单项在选中和未选中两种状态之间切换,通过Checked属性来完成。 结束放映第一页上一页下一页最后一页9.3.4 设置菜单的加速键和快捷键(1)加速键的表现形式: 加速键就是
14、菜单文本(即Text属性)中前面带有&符号的字母。 (2)定义快捷键: 定义快捷键是通过选择General标签页中的ShortCutKey列表框中的内容和三个复选框相结合来完成。 注意:菜单条上的菜单项不要设置快捷键;必须从ShortCutKey列表框中选择一个键,不能自己输入;菜单项的快捷键应是唯一的,否则会引起混乱。 9.3.5 在菜单中加入分隔符 通过分隔符可以把菜单中相关的菜单项组织在一起,加入的方法是:在需要分隔的菜单项之间插入一个新菜单项,然后在新菜单项的文本框中输入一个减号(-),则在屏幕上的两个菜单项之间就会出现一个分隔符。 注意:分隔符不用于菜单条的菜单项之间,只能用
15、于下拉、弹出、级联菜单中;作为分隔符的菜单项的文本中只需输入一个减号(-),输入多了,将不会出现分隔符。 结束放映第一页上一页下一页最后一页9.3.6 将菜单项设置成工具栏 在MDI或MDIHelp类型的窗口中,为了方便,通常为一些常用的菜单项在工具栏上设置相应按钮,通过单击按钮就可执行相应菜单项的功能。设置工具栏要使用Toolbar标签页。(1)按钮文本ToolbarItemText文本框:显示在按钮图标下面的字符串,用作工具栏的提示信息,让鼠标光标在一个工具栏的按钮上停留时间超过2秒,就会显示提示信息。(2)按钮图标ToolbarItemName下拉列表框:用于设置按钮一般情况下的图标。可
16、以选择系统提供的图标,也可通过右边的Browse按钮选择需要的图标。ToolbarItemDownName下拉列表框:用于设置按钮被按下时的图标。(3)按钮的可见性ToolbarItemVisible和在ToolbarItemDown两个复选框:只有选择ToolbarItemVisible复选框,才能显示按钮;若同时选择两个复选框,则按钮的初始状态是ToolbarItemDownName中的图标,否则按钮的初始状态是ToolbarItemName中的图标。 结束放映第一页上一页下一页最后一页9.3.6 将菜单项设置成工具栏(4)按钮的分组 使用ToolbarItemSpace:可以将按钮按逻辑
17、关系分成若干组,各个逻辑组之间用分隔符隔开。0表示当前按钮紧跟在前一个按钮的后面,与前面按钮是一组;大于0的数据表示当前按钮与前面按钮分在两个组,分隔的距离与数据有关,1表示当前按钮与前面按钮之间的间隔是10个像素,2表示20个像素。 ToolBarItemOrder:表示按钮在工具栏上显示的顺序,系统将按照该值的相对大小排列。如果把所有按钮的这个属性都设为0,那么按钮的排列顺序将与菜单项的顺序相同。 ToolbarItemBarIndex:是工具栏的编号,指定按钮在第几行的工具栏上。 该值为0表示不可见,大于0表示所在行号。如2代表放在第二行的工具栏上。 结束放映第一页上一页下一页最后一页9
18、.4 菜单的使用 用菜单有两种方法:一是与某个窗口相关联,作为窗口的菜单条;二是与某个对象相关联,作为弹出菜单。 9.4.1 将菜单嵌入到窗口中 (1)属性设置打开要嵌入菜单的窗口,打开properties视窗,在General标签页的MenuName文本框中输入或选择菜单名,保存窗口即可。(2)编写脚本在窗口的open事件中,写入语句this.changemenu(菜单名)。运行程序时,显示窗口的同时,也显示菜单。 9.4.2 编写脚本 菜单对象有三个事件,Clicked、Selected和Help。 在应用程序的运行过程中,只有菜单项的Visible和Enabled这两个属性都是True时,才会对鼠标的单击和键盘的操作作出反应。 结束放映第一页上一页下一页最后一页9.4.2 编写脚本 (1)Clicked事件在发生以下情况时触发:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 运城幼儿师范高等专科学校《人际传播与沟通》2025-2026学年期末试卷
- 长治幼儿师范高等专科学校《学前教育政策与法规》2025-2026学年期末试卷
- 中国医科大学《商法》2025-2026学年期末试卷
- 运城护理职业学院《库存控制与管理》2025-2026学年期末试卷
- 扬州大学《临床流行病学》2025-2026学年期末试卷
- 长治学院《临床麻醉学》2025-2026学年期末试卷
- 长春光华学院《会计电算化》2025-2026学年期末试卷
- 忻州职业技术学院《病理生理学》2025-2026学年期末试卷
- 2026七年级道德与法治上册 人文素养培养
- 2024届全国高考适应性考试数学试卷含解析
- JG/T 487-2016可拆装式隔断墙技术要求
- 25春国家开放大学《药剂学(本)》形考任务1-3参考答案
- 预算绩效目标管理指标汇编
- 电商平台服务协议、交易规则
- 果实是怎样形成的
- 低空经济产业园建设实施方案
- 电梯安装安全培训
- 华东理工大学《无机非金属材料热工过程及设备》2023-2024学年第一学期期末试卷
- 五年(2020-2024)高考语文真题分类汇编专题04 古代诗歌鉴赏(原卷版)
- 新生儿胎粪性吸入综合征
- 如果历史是一群喵
评论
0/150
提交评论