西安海星系统集成中心 田俊国
---- 对象被右键单击就弹出一个功能菜单是Windows应用程序一项不可缺少的功能。在PowerBuilder应用开发中,可在需弹出右键菜单对象的rbuttondown事件中调用该菜单的Popmenu( )方法实现这一功能。但多数情况下,应用中有多处要用到不同的弹出式菜单,如一一用这种方法就需要做大量的工作。能不能做一个通用的菜单,可以用任何对象的rbuttondown事件激发弹出,并在弹出前动态改变弹出菜单项的内容,当点击菜单项时又可执行被右击对象的相应用户事件?由于这一技术最大的特点是当函数创建成功后,可在任何应用的任何对象中随心所欲的使用,随时随地弹出自己想要显示的菜单项,并执行相应的自己需要的功能脚本,但目前各种资料上鲜有系统、成型的介绍。笔者抱着一种探索的态度,作了一番仔细深入的研究,并小有收获,愿和大家共同探讨。
一、 创建弹出菜单m_popup
创建一个菜单m_popup,定义菜单条m_main,其下有十五个菜单项,分别命名为m_item1,m_item2,……m_item15,各项的显示文本(text)分别为item1,item2,… …item15;
为m_popup菜单定义一个Powerobject类型的Instance变量:Anyobject
脚本为:
Powerobject Anyobject
给m_item1,m_item2,… …m_item15各菜单项的Clicked事件下分别输入脚本:
Anyobject.triggerevent("ue_item1")
//m_item1的clicked事件
Anyobject.triggerevent("ue_item2")
… …
Anyobject.triggerevent("ue_item15")
---- 4、 定义几个菜单函数:
---- 1) setmenuitem(string itemstring),返回值为Null。
---- 参数Itemstring是由多个子串组成的。各个子串间用“
关键词:用PB做一个通用右键菜单