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

      新建一个空白窗体(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控件效果不是很好

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值