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】