pb菜单详解和MDI

菜单条-MenuBar、菜单项-MenuItem、级联菜单(子菜单)-SubMenu

菜单项(MenuItem)是菜单中最基本的元素,只要有文字内容的就是菜单项。菜单条(MenuBar)是菜单中级别最高的菜单项的总称,也叫做菜单标题。菜单条的内容总是显示出来,对菜单的操作也是首先从这里开始的。在菜单条上移动鼠标或者点击其中的项目可以显示对应的内容,称为下拉菜单,包括很多的菜单项,它们大多数都执行相应的功能,少数还可以包含更细致的内容,称为级联菜单(SubMenu),也叫做子菜单。这样的菜单项右面都有小箭头指示

在设置菜单时,在设计窗口中的每一步修改都能反映到预览窗口中,随时可以检查级别关系是否正确。如果发生顺序或者级别错误,可以用鼠标选中错误菜单项(不要使菜单项处于编辑状态),然后直接拖动到正确的位置即可。在菜单项中输入内容时,有两个字符具有特殊的含义,“-”可以创建菜单项之间的分隔线,“...”表示该菜单项可以弹出一个属性对话窗口。另外,弹出式菜单弹出的是某个下拉菜单或者某个级联菜单,也可以单独设计弹出式菜单,和下拉式菜单的设计没有什么区别。


【属性】

▲Name
在该属性框中为菜单项命名。缺省菜单的名称都是m_加上菜单项的内容。在脚本中引用菜单项时要从最开始一级加圆点符号逐级引用,比如要引用“文件”下的菜单项“打开”,可以使用“m_文件. m_打开”来引用。

▲Text
该属性就是在创建菜单时每个菜单项中输入的内容。运行时的整个菜单内容就是该属性的内容。

▲MicroHelp
如果菜单挂接在MDIHelp!类型的窗口中,运行状态下,当鼠标指针指向菜单项或者工具条中的小图标时,该文字可以显示在MDI窗口底部的状态条中

▲ToolbarItemText
可以定义显示在工具条小图标中的文字,以对小图标的功能有简短的描述。当鼠标指针指向工具条中的小图标时,显示此文字

▲ToolbarItemName
该属性用来定义工具条小图标上显示的图形。可以使用PowerBuilder提供的很多小图标,也可以自定义。

▲ToolbarItemDownName
菜单选中时,即checked时,按下的图标,一般与ToolBarItemName相同

▲ToolbarItemVisible
显示或隐藏工具条图标

▲ToolbarItemDown
菜单选中,即checked,图标按下

▲ToolbarItemSpace
指定该图标和前面图标之间的间距。一般都是0,只有不同组的图标之间才有必要设置间距。

▲ToolbarItemBarIndex
指定图标显示在哪一行的工具条上。该属性相同的图标显示在同一行,只要相同就可以,并不要求该属性取值为连续的数字。

▲ToolbarItemOrder
指定图标显示顺序,此值越大越靠后,默认0时按照菜单中的顺序显示。
如在菜单file下后exit,需要把exit图标放在最后,则其他都为0,exit设为1就可以了

▲ShortCutKey
该属性和ShortCut Alt,ShortCut Control和ShortCut ShIft三个选项配合使用来定义菜单项的快捷键。

其他的属性使用得比较少。


〖菜单编程〗
●为“退出”菜单项编写脚本
在菜单中指代词parentwindow是指菜单挂接的窗口,比直接使用窗口的名称有更好的通用性。所以在“退出”菜单项的Clicked事件中可以这样编写脚本:close(parentwindow)

●选中某个菜单项
可以使用Checked标记来表示某个菜单项选中,可以在菜单项的Clicked事件中编写如下脚本来选中菜单项:
if this.checked then
   this.checked = false
else
   this.checked = true
end if
也可以使用函数Check和UnCheck来代替属性修改。上面的脚本可以改成:
if this.checked then
   this.uncheck()
else
   this.check()
end if
当菜单项选中时,菜单项的左侧有一个“√”符号,并且对应的小图标为按下状态。

●隐藏某个菜单项
要隐含某个菜单项,可以将该菜单项的Visible属性修改为False,如果该菜单项位于菜单条的最高级别上,则可以将整个下拉菜单隐含。例如,某窗口上挂接了菜单m_main,在窗口的打开事件中将菜单中的“文件”整个下拉菜单隐含,可以在该窗口的0pen事件中编写如下脚本:
    m_main.m_文件.Visible = False
    但是,将菜单项隐含并不能将其对应的在工具条中的小图标隐含,并且小图标的功能照样能够正常执行。要将小图标隐含,应该设置ToolBarItemVisible属性为False。例如,隐含菜单项“打开”对应的小图标,在窗口的打开事件中可以使用下面的语句:
    m_main.m_文件.m_打开.ToolBarItemVisible = False

●使某个菜单项失效
将菜单项的Enabled属性置为False,即可使菜单项显示变灰而不能使用,同时对应的小图标也变灰。如果足下拉菜单则整个下拉菜单不能使用,但其下拉项目对应的小图标可以正常使用。如果是级联菜单则级联菜单不能被打开,但是级联菜单下的各个菜单项对应的小图标可以正常使用。下面是在窗口打开事件中将菜单m_main的“文件”下的m_open修改为无效的脚本: 
    m_main.m_文件.m_open.Enabled = False

●调整工具条的位置
如果工具条的ToolBarUserControl属性(在application中)设置为True,则用户可以在工具条上按鼠标右键弹出菜单。使用该弹出菜单可以调整工具条的显示位置。用直接拖拉的方式也可以改变工具条的显示位置。当工具条的位置发生变化时将触发窗口的ToolBarMoved事件,在该事件中可以编写脚本来判断工具条的移动情况。当该事件触发时,PB自动修改Message中的参数WordParm和LongParm使用这两个属性可以判断工具条的移动情况,属性含义如下:
Message.LongParm属性的含义:
0:移动到左侧;
1:移动到顶部;
2:移动到右侧:
3:移动到底测;
4:变为浮动显示。
Message.WordParm属性的含义:
O:FrameBar在移动;
1:SheetBar在移动。
关于工具条位置的编程一般是在窗口打开和关闭时应用。关闭对应该保存用户关于工具条的设置,以便在窗口打开时将工具条恢复到上次关闭时的状态。这些信息可以保存在应用的ini文件中,具体含义只要开发人员清楚即可,打开时按同样的含义来设置

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weixin_45466998

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值