第09章教案-菜单

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第9章菜单菜单是PowerBuilder系统创建交互式应用程序最重要的对象之一。除了子窗口和响应窗口外,其它窗口都可以拥有菜单,用户可以通过选择菜单项完成所需功能。9.1菜单的基本概念9.1.1菜单的基本组成·菜单(Menu):应用或窗口中供用户选择命令和选项的列表。菜单中的选项通常就是相关的命令,与工具栏上相应的按钮有相同的功能。·菜单栏(MenuBars):窗口上部的条形栏,栏中横向显示可选择的菜单项。·菜单项(MenuItem):菜单中可以选择的项,菜单项可以是菜单栏、下拉菜单或级联菜单中的一项。菜单项是构成菜单的最小单位。菜单项由三部分组成:文本、名称和脚本。文本是显示在屏幕上的内容,可以是文字、字符或符号,名称标识菜单项,供程序设计者使用,默认的名称前缀是m_。·工具栏(ToolsBar):由图标按钮组成的栏,每个图标都对应一个菜单项。结束放映第一页上一页下一页最后一页9.1.2菜单的类型(1)下拉菜单下式菜单出现在某个菜单项下面,通过点击鼠标访问,也可在按下Alt键的同时按下带有下划线的字符来访问。(2)级联菜单级联菜单一般都从属一个父菜单项,通常在父菜单项的右边有一个向右的箭头,通过单击这个右箭头就可以访问级联菜单。9.1.3菜单的特征访问菜单中的菜单项一般通过点击鼠标来完成,有时也可通过键盘的动作来触发;菜单项一般用于执行命令,有时是为了表示一种状态(选中和未选中)有的菜单项前面带有符号()。使用键盘访问菜单项,可通过加速键或快捷键来完成。(1)加速键加速键以带下划线的字母表示;当菜单项已经显示出来的情况下,可以按加速键快速访问相应的菜单命令,加速键使得通过键盘使用菜单更方便。(2)快捷键快捷键无需打开菜单,即在菜单项并不显示出来的情况下,就可以使用相应键盘按键的组合执行菜单命令;对于使用频繁的菜单命令就可以设置快捷键。结束放映第一页上一页下一页最后一页9.1.4设计一个菜单使用PowerBuilder环境中的菜单画板,可以自由地设计菜单,为方便用户,在设计时应遵循如下约定。(1)应尽量避免罗列多级菜单。(2)菜单应尽可能简单一致。(3)相关菜单项应放在一个下拉菜单中,以便于记忆和使用。(4)为菜单项定义加速键和快捷键,为菜单项定义相应的工具栏图标按钮。(5)在创建菜单前,决定菜单项应何时被选中,何时不可见,或不可用,并在应用中给予适当的提示。(6)应使用标准的加速键、快捷键和工具栏。如按下F1键,即可打开帮助文件。(7)尽量使用分隔符“-”和省略号“…”。将功能相关的选项划分在一个区域内;若选项的执行结果是打开另一个窗口或对话框,那么选项的名称最好以省略号结尾。结束放映第一页上一页下一页最后一页9.2创建菜单9.2.1进入菜单画板(1)选择菜单【File|New…】,在出现的对话框中选择PBObject标签页。(2)在PowerBuilderObject标签页中,选择Menu图标后,再选择菜单所在的目标文件后,点击OK按钮。默认的菜单画板有四个视窗,分别是WYSIWYG视窗、Tree视窗、Properties视窗和Scipt视窗。WYSIWYG(WhatYouSeeIsWhatYouGet)视窗使得开发人员在设计时看到的菜单和运行时的菜单一样;Tree视窗是以树状的形式表示菜单之间的级联关系。在创建和修改菜单时,在这两个窗口中进行的操作是等同的,在WYSIWYG中修改与在Tree中修改是一样的。Properties视窗用于定义菜单项的属性,Scipt视窗用于编写程序脚本。菜单窗口如下页图所示。结束放映第一页上一页下一页最后一页9.2.1进入菜单画板结束放映第一页上一页下一页最后一页9.2.2创建一个新菜单创建一个新菜单的步骤如下:(1)进入菜单画板。(2)添加菜单条上的菜单项。(3)添加下拉菜单项。(4)添加级联菜单项。(5)为菜单项定义属性(6)编写脚本(7)保存菜单9.2.3在当前菜单项下添加同级菜单项(1)添加菜单条中的第一项在WYSIWYG视窗中,选择untitled,点击右键,在弹出的快捷菜单中选择InsertSubmenuItem菜单项。在出现的空白方框内输入要显示的文本。然后按回车。若按下Tab键,可添加同级其它菜单项。结束放映第一页上一页下一页最后一页9.2.3在当前菜单项下添加同级菜单项选择菜单栏中的某项后,点击右键选择InsertMenuAtEnd或InsertMenuItem菜单项,输入显示文本即可。9.2.4在当前菜单项下添加子菜单项选择某个菜单项后,点击右键选择InsertSubMenuItem,就会在当前菜单项下添加一个子菜单。同9.2.3节。9.2.5删除菜单项选择某个菜单项后,点击右键,选择Delete菜单项,就会删除当前菜单项。9.2.6添加下拉菜单项添加方法如同9.2.4节所述。项目深入一个层次,出现在菜单栏某个菜单项下面。9.2.7添加级联菜单项添加方法如同9.2.4节所述。项目深入两个层次,也称二级菜单。结束放映第一页上一页下一页最后一页9.2.8通过继承创建一个菜单1.继承菜单(1)选择菜单【File|Inherit】。(2)在出现的对话框中选择要继承的菜单名,点击OK按钮。(3)所选菜单显示在菜单画板中,画板标题表明该菜单是一个后代菜单。随后对其进行必要的修改。(4)保存所继承的菜单。2.继承信息的使用后代菜单继承了父菜单的事件、风格、函数和脚本等全部内容。(1)在后代菜单中可以做的事在菜单中添加菜单项;修改菜单项的属性,如修改菜单项显示的文本及可用性等;扩展或取代继承来的菜单对象的脚本;可以为没有脚本的菜单编写脚本;可以为菜单声明变量、函数和结构。(2)在后代菜单中不能做的事不能改变继承来的菜单项之间的前后顺序,可以在它们之间插入新的菜单项,但必须保持原来菜单项的顺序;继承来的菜单不能被删除;不能修改继承来的菜单项的名称;不能改变继承来的菜单项的类型。结束放映第一页上一页下一页最后一页9.2.8通过继承创建一个菜单3.在后代菜单中插入菜单项新继承来的菜单只能在菜单项的最后添加菜单项,不能在菜单项中插入新的菜单项,若非要插入新的菜单项,那么从插入菜单项的位置至以后的各菜单项的属性都要选择ShiftToRight复选框,然后再采用前面介绍的方法进行菜单项的插入。9.3设置菜单属性通过对菜单项属性的设置,指定菜单对象的外观和行为,每个菜单项属性视窗都包含General和Toolbar两个标签页。9.3.1给菜单命名给菜单命名有两个方面的目的,一是将名称显示在屏幕上给用户看,作为默认菜单显示文本;二是提供给编程者使用,以便在脚本中区别菜单项,称为菜单的名称。(1)菜单的名称菜单的名称一般由两部分组成,第一部分是系统指定的前缀m_,第二部分是一个合法的标识符。菜单项的名称是唯一的,并且不能为空白,否则菜单不能保存。结束放映第一页上一页下一页最后一页9.3.1给菜单命名(2)菜单的文本Text文本框中设置菜单项显示的文本。任何时刻都可修改菜单项的文本。9.3.2设置菜单提示信息通过设置菜单项的Microhelp属性,给菜单项添加提示。该属性只有在菜单嵌入MDIHelp类型的窗口中才起作用。当点击菜单项时,在窗口底部的状态栏中显示对应菜单项的Microhelp属性中的内容。9.3.3设置菜单可访问性菜单的访问性主要由Visible、Enabled和Checked这三个属性决定。(1)Visible复选框:决定菜单项是否可见。可通过属性设置或脚本控制来完成。·通过属性设置:若Visible复选框未被选中,则该菜单项不可见,在该菜单项之后的菜单项位置依次提前。·通过脚本控制:赋值语句:菜单名.菜单项名.visible=true使菜单项可见;赋值语句:菜单名.菜单项名.visible=false使菜单项不可见。如:m_menu.m_菜单.m_创建菜单.visible=false,表示m_memu.m_菜单.m_创建菜单项不可见。结束放映第一页上一页下一页最后一页9.3.3设置菜单可访问性(2)Enabled复选框:决定某个菜单项是否可用,即点击这个菜单项是否执行它的脚本。若菜单项被设置为不可用,则它的文本呈灰色。也可以通过属性设置或脚本控制来完成。·通过属性设置:若Enabled复选框未被选中,则该菜单项就不可用,呈灰色显示。·通过脚本控制:赋值语句:菜单名.菜单项名.Enabled=true使菜单项可用;赋值语句:菜单名.菜单项名.Enabled=false使菜单项不可用。如:m_menu.m_菜单.m_创建菜单.Enabled=false,表示m_memu.m_菜单.m_创建菜单项不可用,呈灰色显示。(3)Checked复选框:实际应用中,使用带有标志的菜单项来表示选中和未选中两种状态。如PowerBuilder系统中,Window菜单的Output菜单项前面有符号,表示已经显示Output视窗,点击Output菜单项,其前面的符号会消失,再点击又会出现,Output视窗也会跟着显示和消失。这种形式的菜单项在选中和未选中两种状态之间切换,通过Checked属性来完成。结束放映第一页上一页下一页最后一页9.3.4设置菜单的加速键和快捷键(1)加速键的表现形式:加速键就是菜单文本(即Text属性)中前面带有&符号的字母。(2)定义快捷键:定义快捷键是通过选择General标签页中的ShortCutKey列表框中的内容和三个复选框相结合来完成。注意:①菜单条上的菜单项不要设置快捷键;②必须从ShortCutKey列表框中选择一个键,不能自己输入;③菜单项的快捷键应是唯一的,否则会引起混乱。9.3.5在菜单中加入分隔符通过分隔符可以把菜单中相关的菜单项组织在一起,加入的方法是:在需要分隔的菜单项之间插入一个新菜单项,然后在新菜单项的文本框中输入一个减号(-),则在屏幕上的两个菜单项之间就会出现一个分隔符。注意:分隔符不用于菜单条的菜单项之间,只能用于下拉、弹出、级联菜单中;作为分隔符的菜单项的文本中只需输入一个减号(-),输入多了,将不会出现分隔符。结束放映第一页上一页下一页最后一页9.3.6将菜单项设置成工具栏在MDI或MDIHelp类型的窗口中,为了方便,通常为一些常用的菜单项在工具栏上设置相应按钮,通过单击按钮就可执行相应菜单项的功能。设置工具栏要使用Toolbar标签页。(1)按钮文本ToolbarItemText文本框:显示在按钮图标下面的字符串,用作工具栏的提示信息,让鼠标光标在一个工具栏的按钮上停留时间超过2秒,就会显示提示信息。(2)按钮图标ToolbarItemName下拉列表框:用于设置按钮一般情况下的图标。可以选择系统提供的图标,也可通过右边的Browse按钮选择需要的图标。ToolbarItemDownName下拉列表框:用于设置按钮被按下时的图标。(3)按钮的可见性ToolbarItemVisible和在ToolbarItemDown两个复选框:只有选择ToolbarItemVisible复选框,才能显示按钮;若同时选择两个复选框,则按钮的初始状态是ToolbarItemDownName中的图标,否则按钮的初始状态是ToolbarItemName中的图标。结束放映第一页上一页下一页最后一页9.3.6将菜单项设置成工具栏(4)按钮的分组·使用ToolbarItemSpace:可以将按钮按逻辑关系分成若干组,各个逻辑组之间用分隔符隔开。0表示当前按钮紧跟在前一个按钮的后面,与前面按钮是一组;大于0的数据表示当前按钮与前面按钮分在两个组,分隔的距离与数据有关,1表示当前按钮与前面按钮之间的间隔是10个像素,2表示20个像素。·ToolBarItemOrder:表示按钮在工具栏上显示的顺序,系统将按照该值的相对大小排列。如果把所有按钮的这个属性都设为0,那么按钮的排列顺序将与菜单项的顺序相同。·ToolbarItemBarIndex:是工具栏的编号,指定按钮在第几行的工具栏上。该值为0表示不可见,大于0表示所在行号。如2代表放在第二行的工具栏上。

1 / 16
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功