打印本文 打印本文 关闭窗口 关闭窗口
如何让按扭随窗口的大小变换位置
作者:武汉SEO闵涛  文章来源:敏韬网  点击数950  更新时间:2009/4/24 21:43:03  文章录入:mintao  责任编辑:mintao

本例中共有四个控件,一个窗口控件dw_1和三个按扭cb_1,cb_2,cb_3。

在窗口定义实例变量:
Boolean bFirstTime //是否第一次打开窗口
Integer iOrigWidth,iOrigHeight //窗口原始尺寸
Integer iButtongap //按扭之间的距离
Integer iButton_Bottom,iButton_left,iButton_Dw //

在窗口OPEN事件中:
bFirstTime=true

在窗口RESIZE事件中:
Integer iWindowWidth,iWindowHeight
Integer iWorkWidth,iWorkHeight
Integer iX,iY,iWidth,iHeight

//得到窗口的尺寸
iwindowwidth=this.width
iwindowheight=this.height

//得到工作区的尺寸
iworkwidth=this.workspacewidth()
iworkheight=this.workspaceheight()

if bFirstTime then //第一次修改窗口大小
//保存原始尺寸
iorigwidth=iwindowwidth
iorigheight=iwindowheight
ibuttongap=cb_2.x - (cb_1.x + cb_1.width)
ibutton_bottom=iworkheight - (cb_1.y + cb_1.height)
ibutton_left=cb_1.x
ibutton_dw=cb_1.y - dw_1.height
bFirstTime=false
return
else
//原始窗口不能调得过小,以避免控件重叠
if iwindowwidth$#@60;cb_3.x + cb_3.width + ibutton_left or iwindowheight$#@60;cb_1.height + ibutton_dw +ibutton_bottom + dw_1.y then
this.resize(iorigwidth,iorigheight)
return
end if
end if

//调整按钮位置
ix=ibutton_left
iy=iworkheight - (ibutton_bottom + cb_1.height)
cb_1.move(ix,iy)

ix=ix + cb_1.width + ibuttongap
cb_2.move(ix,iy)

ix=ix + cb_2.width + ibuttongap
cb_3.move(ix,iy)

//调整DW控件大小
iwidth=iworkwidth - 2 * dw_1.x
iheight=cb_1.y -dw_1.y - ibutton_dw
dw_1.resize(iwidth,iheight)

打印本文 打印本文 关闭窗口 关闭窗口