powerbuilder 控件句柄变换,求教!

powerbuilder 控件句柄转换,求教!!
问题:
 比如我通过handle取得了一个button的句柄。
 那么我能否根据这个句柄的值,又反操作还原这个控件呢?
------解决方案--------------------
在控件未被注销的时候,是可以的,但是无法一步到位,只能通过遍历窗口内的控件,然后匹配控件的handle

------解决方案--------------------
给你这么一个函数:
global function powerobject f_getobject (powerobject ap, long al_handle);
powerobject lpo
if not isvalid(ap) then return lpo
long i
choose case typeof(ap)
case window! //窗口可以有子控件
window lw
lw = ap
for i = 1 to upperbound(lw.control)
lpo = f_getobject(lw.control[i], al_handle)
if isvalid(lpo) then return lpo
next
case tab! //标签页可以有子控件
tab ltb
ltb = ap
for i = 1 to upperbound(ltb.control)
lpo = f_getobject(ltb.control[i], al_handle)
if isvalid(lpo) then return lpo
next
case userobject! //用户自定义对象可以有子控件
userobject luo
luo = ap
for i = 1 to upperbound(luo.control)
lpo = f_getobject(luo.control[i], al_handle)
if isvalid(lpo) then return lpo
next
case else //其他没有子对象
if handle(ap) = al_handle then return ap
end choose
return lpo


end function



调用如下:
powerobject lpo
lpo = f_getobject(w_main, 12345678) //取w_main窗口中句柄号为12345678的控件
if not isvalid(lpo) then
messagebox('提示', '句柄无效!')
return
end if

choose case typeof(lpo)
case commandbutton! //12345678对应的控件为cb
commandbutton lcb
lcb = lpo
messagebox('按钮文本', lcb.text) //取cb的文本属性
case else
end choose