熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> PB編程 >> 正文

PowerBuilder9.0窗體控件自動縮放的實現

2022-06-13   來源: PB編程 

  新建一個空白窗體(window)在自定義事件裡定義名為ue_getScale的事件

  入口參數None返回值None 事件ID為None

  事件內容

  //獲取控件與窗口比例大小

  int li_i

  DragObject wnd

  for li_i = upperBound(Control[]) to step

  wnd = control[li_i]

  id_scaleX[li_i] = wndX / width

  id_scaleY[li_i] = wndY / height

  id_scaleWidth[li_i]  = wndwidth / width

  id_scaleHeight[li_i] = wndheight / height

  next

  在resize事件裡寫入如下代碼

  int li_i li_count

  DragObject w_object

  if sizeType = then return   //最小化窗口不處理

  li_count = upperBound(id_scaleX[])

  if li_count < then return

  SetRedraw(false)

  for li_i = to li_count

  w_object = control[li_i]

  w_objectX = ceiling(width *  id_scaleX[li_i])

  w_objectY = ceiling(height * id_scaleY[li_i])

  w_objectwidth  = ceiling(width * id_scaleWidth[li_i])

  w_objectheight = ceiling(height * id_scaleHeight[li_i])

  next

  SetRedraw(true)

  最後在Open事件裡觸發Ue_getScale()事件就可以了

  備注對DataWindow和OLE控件效果不是很好

      編輯推薦

       ASP NET開發培訓視頻教程

       Microsoft NET框架程序設計視頻教程


From:http://tw.wingwit.com/Article/program/PB/201311/24583.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.