wxWidgets:窗口大小概述
wxWidgets:窗口大小概述
跟踪wxWindow的各种与大小相关的属性、它们如何相互关联以及它们如何与 sizer 交互有时会令人困惑。
本文档将试图稍微澄清一下迷雾,并给出一些简单的解释。
wxWidgets词汇表
“Size”:这是窗口的当前大小,可以使用wxWindow::SetSize()或wxWindow::GetSize()方法显式设置或获取。此大小值是小部件当前在屏幕上使用的大小,是更改未由 sizer 管理的内容大小的方法。
“Client Size”:客户端大小表示属于小部件的任何边框内的小部件区域,并且是可以在EVT_PAINT事件中绘制的区域。对于wxFrame,客户端大小也不包括框架菜单、工具和状态栏(如果有)。如果窗口没有任何边框(并且不是带有一些条形的wxFrame),则其客户端大小与其大小相同。
“Best Size”:widget 的最佳大小取决于它是什么类型的widget,通常也取决于widget 的内容。例如,wxListBox的最佳尺寸将根据它拥有的项目数量计算,达到一定的限制,或者wxButton的最佳尺寸将根据其标签尺寸计算,但通常不会小于平台默认按钮大小(除非样式标志覆盖)。C++ 窗口类中有一个特殊的虚方法,称为wxWindow::DoGetBestSize(),如果一个类想根据其内容计算自己的最佳大小,可以覆盖它,但是请注意,通常覆盖 DoGetBestClientSize() 更方便, 见下文。
“Best Client Size”:这只是与最佳窗口尺寸相对应的