解决PB中不能用OpenUserObject实例化Line、Oval、Rectangle、RoundRectangle等窗口控件的问题
最近在网上看到网友们的阐述,有些不太具体,有些纯属胡说,下面给我一个比较实在的解决方法,这个解决方法没有调用Windows的API,而是利用PowerBuilder自身的新建Custom Visual的功能。
具体操作过程(问题的造成原因在我博客http://i.cn.yahoo.com/neonlight里有,这里不多废话了),创建好应用程序以及其中需要调用GraphicObject对象的窗口后,创建一个Custom Visual:
单击“新建(New)”,选择“PB Object”选项卡中的“Custom Visual”,随后工作区出现的操作对象类似窗口对象,把你想插入的GraphicObject对象控件,例如Rectangle插入其中,随后如果想在调用窗口中只显示这个控件时,可以把正在创建的“Custom Visual”的height和width都调整成插入控件的大小,并把GraphicObject对象控件的坐标调整为(x:0,y:0)。这样整个窗口仅仅能显示出你得这个GraphicObject对象控件,保存这个“Custom Visual”,取个文件名例如“uo_box”。
之后在你想动态生成控件的事件中写下如下代码,有任何问题请联系neonlight@live.cn:
uo_box uo_rectangle
OpenUserObject(uo_rectangle,100,100) //在父亲窗口中0,0坐标处打开uo_rectangle
//将uo_rectangle放入窗口控件数组内,当然也可以不放进去
w_main.Control[UpperBound(w_main.Control)+1] = uo_rectangle
//设

本文介绍了一种解决PowerBuilder中不能通过OpenUserObject实例化Line、Oval、Rectangle等图形控件的问题。通过创建Custom Visual并利用PowerBuilder自身功能,可以实现动态显示和管理这些图形对象,避免调用Windows API。详细步骤包括创建Custom Visual,插入图形对象,调整大小和坐标,并在代码中实例化和管理这些对象。
最低0.47元/天 解锁文章
303

被折叠的 条评论
为什么被折叠?



