您的位置:首页 > 产品设计 > UI/UE

PowerBuilder9.0窗体控件自动缩放的实现

2011-05-24 13:59 267 查看
新建一个空白窗体(window),在自定义事件里,定义名为ue_getScale的事件。
入口参数None,返回值None, 事件ID为None。
事件内容:
//获取控件与窗口比例大小
int li_i
DragObject wnd
for li_i = upperBound(Control[]) to 1 step -1
wnd = control[li_i]

id_scaleX[li_i] = wnd.X / width
id_scaleY[li_i] = wnd.Y / height

id_scaleWidth[li_i] = wnd.width / width
id_scaleHeight[li_i] = wnd.height / height
next

在resize事件里写入如下代码:
int li_i, li_count
DragObject w_object
if sizeType = 1 then return 0 //最小化窗口不处理
li_count = upperBound(id_scaleX[])
if li_count < 0 then return 0
SetRedraw(false)
for li_i = 1 to li_count
w_object = control[li_i]

w_object.X = ceiling(width * id_scaleX[li_i])
w_object.Y = ceiling(height * id_scaleY[li_i])
w_object.width = ceiling(width * id_scaleWidth[li_i])
w_object.height = ceiling(height * id_scaleHeight[li_i])
next
SetRedraw(true)
最后在Open事件里触发Ue_getScale()事件就可以了

备注:对DataWindow和OLE控件效果不是很好
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐