在PB中改变窗口控件的大小
?牐?1.建立一窗口,名为w_1,类型为main,title为“控件拖动”;
?牐?2.在w_1上放置三个数据窗口控件,窗口上方左侧数据窗口为dw_1,右侧数据窗口为dw_2,窗口下方数据窗口为dw_3(布局像一倒立的品字);在dw_1和dw_2之间放置一静态文本框,名为st_1,在dw_1及dw_3之间放置一静态文本框,名为st_2;st_1的autodrag为false,enabled为true,pointer为SizeWE!,st_2的autodrag为false,enabled为true,pointer为SizeNS!。
?牐?3.在w_1的resize事件中写如下代码:
?牐爄nt allxally
?牐燼llx=this.workspacewidth()
?牐燼lly=this.workspaceheight()?煟?
?牐爏t_1.width=10 //设置拖动条大小及位置
?牐爏t_1.height=ally/2 - 100
?牐爏t_1.x=allx/2
?牐爏t_1.y=100
?牐爏t_2.width=allx - 200
?牐爏t_2.height=10
?牐爏t_2.x=100
?牐爏t_2.y=ally/2
?牐燿w_1.width=allx/2 - 100 //设置数据窗口大小及位置
?牐燿w_1.height=ally/2 - 100
?牐燿w_1.x=100
?牐燿w_1.y=100
?牐燿w_2.width=allx/2 - 100 - st_1.width
?牐燿w_2.height=ally/2 - 100
?牐燿w_2.x=allx/2 + st_1.width
?牐燿w_2.y=100
?牐燿w_3.width=allx - 200
?牐燿w_3.height=ally/2 - 100 - st_2.height
?牐燿w_3.x=100
?牐燿w_3.y=ally/2 + st_2.height
?牐犚陨洗氡Vぴ诖翱诖笮「谋涫保骺丶恢眉按笮∷嬷谋洹?
?牐牻酉吕捶直鹞猻t_1、st_2定义以下事件:
?牐犑录?mouse_on 事件id:pbm_mousemove
?牐犑录?mouse_up 事件id:pbm_lbuttonup
?牐犑录?mouse_down 事件id:pbm_lbuttondown
?牐犎缓笪猻t_1、st_2的事件编写代码:
?牐?//st_1事件mouse_on代码:
?牐爄f keydown(KeyLeftButton!)?爐hen //按下鼠标左键并移动鼠标时,拖动条移动
?牐爐his.x=parent.pointerx?煟?
?牐爀nd if
?牐?//st_1事件mouse_down代码:
?牐爐his.backcolor=0 //按下鼠标左键时,拖动条背景色为黑色
?牐?//st_1事件mouse_up代码:
?牐爐his.backcolor=parent.backcolor //松开鼠标左键时,拖动条背景色为窗口背景色
?牐燿w_2.x=this.x+this.width //重设控件位置及大小
?牐燿w_2.width=parent.workspacewidth() - 100 - dw_2.x
?牐燿w_1.width=this.x - dw_1.x
?牐?//st_2事件mouse_on代码:
?牐爄f keydown?烱eyLeftButtonthen
?牐爐his.y=parent.pointery()
?牐爀nd if
?牐?//st_2事件mouse_down代码:
?牐爐his.backcolor=0
?牐?//st_2事件mouse_up代码:
?牐爐his.backcolor=parent.backcolor
?牐燿w_3.y=this.y+this.height
?牐燿w_3.height=parent.workspaceheight()- 100 - this.y - this.height
?牐燿w_1.height=this.y - dw_1.y
?牐爏t_1.height=dw_1.height
?牐燿w_2.height=dw_1.height
?牐犜诵写翱趙_1,当鼠标形状变成箭头形状时,沿箭头方向按下鼠标左键移动鼠标然后松开鼠标左键,窗口控件的大小随之改变。如果数据窗口内包含一些在本数据窗口不能完全显示的数据,用户只须按下鼠标左键移动鼠标便能改变数据的可视范围,给用户带来极大的方便。该程序在PB 6.5/Windows 98SE环境下调试通过。