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