17.6.4 控件位置与大小

2013-10-07 01:04:54 · 作者: · 浏览: 74

17.6.4  控件位置与大小

可以设置控件的位置和大小。

  
  

位置和大小保存在iPosition和iSize中。可以用Position()、Size()或Rect()来查询它们的值,而用SetExtentL()、SetPosition()、SetSizeL()和SetRectL()来改变它们的值。

在很少情况下,控件大小的变化可能导致进行内存分配,分配可能失败。因此,所有改变大小的函数都有可能异常退出。SetPosition()不改变大小,因此它不会异常退出。

当控件的大小变化时,它的虚函数SizeChangeL()会被调用。

位置变化由PositionChanged()通知。

SetExtentL()调用 SizeChangedL()而不是调用 PositionChanged()。因此,可以认为,SizeChangedL()始终通知大小变化,并可能通知位置变化。

可以使用SetSizeWithoutNotificationL()来防止调用SizeChangedL()。

可以设置并询问相对于自主窗口的位置,并将大小设置为整个屏幕。SetCornerAndSizeL()将控件的矩形与整个屏幕的一个角对齐。

仅仅调整控件的大小不会引起分配额外的资源,除了对于极少类型的控件,在Draw()中可能需要分配资源。在这种情况下,应该捕获任何异常。

【责任编辑:董书 TEL:(010)68476606】

回书目   上一节   下一节