如何动态设置窗口客户区的大小(65分)

  • 主题发起人 主题发起人 liguang
  • 开始时间 开始时间
L

liguang

Unregistered / Unconfirmed
GUEST, unregistred user!
问题是这样,为了提高显示效率,我直接使用BITBLT函数在窗体上画了图.在图中间要放一个<br>TreeView.为了以后的方便我想把TreeView的align设置为alCenter的.但是这就涉及到一个<br>问题,如何动态的设置窗口客户区的大小,我不知道拦哪个事件才能完成这个事情.望大侠们<br>能告之.多谢.
 
客户区的大小不能随便改变的,它的大小与窗口的大小相对应,窗口大小改变了,客户区就<br>相应改变,而窗口的大小是可以随时改变的!<br>如果不想改变窗口的大小,可以将TREEVIEW放置在一个PANEL上,随时改变PANEL的大小。
 
liguang:<br>&nbsp; &nbsp; &nbsp; 一看你又是干了一晚上吧,歇一歇再想一想。<br>不过,你的设想好像不太棒,因为你的treeview,没有参照点。
 
To liguang:<br>&nbsp; &nbsp; 你的意思是指TreeView到窗口的四边的距离不变吧。<br>&nbsp; &nbsp; 如果是的话,可以设置<br>&nbsp; &nbsp; &nbsp; TreeView.Align = alNone; <br>&nbsp; &nbsp; &nbsp; TreeView.Anchors = [akTop, akLeft, akBottom, akRight];<br>&nbsp; &nbsp; 这时,你会发现无论窗口的大小如何改变,TreeView到窗口的四条边界的距离不变。
 
function TWinControl.GetClientRect: TRect; virtual // 获取clientrect <br>procedure TWinControl.AdjustClientRect(var Rect: TRect); virtual // 调整client区域<br>procedure TWinControl.AlignControls(AControl; var Rect: TRect); virtual// 调整AControl中所有control的位置<br><br>兔子,我试了试,大约要用这几个,还没有搞定 :-)<br>
 
老猫的方法正确.给分.<br>procedure TForm1.AdjustClientRect(var Rect: TRect);<br>begin<br>&nbsp;inherited AdjustClientRect(Rect);<br>&nbsp;InflateRect(Rect, -3, -3);<br>end;<br>
 
后退
顶部