我正在使用wxWidget来设计GUI。我的GUI有多个选项卡。如果用户调整框架的大小,如果他选择了某个选项卡,当他在标签之间切换时,应保持相同的修改大小。我正在使用sizer来放置所有子窗口。但目前这种情况并没有发生。我目前的代码是这样的
void XTab::OnPageChanged(wxNotebookEvent & event)
{
if(isActive())
{
int page = event.GetOldSelection();
if(page!=-1)
{
XPanel * panel = (XPanel*)GetPage(page);
xdmlASSERT(panel->isActive());
panel->onUIDeactivate();
}
page = event.GetSelection();
if(page!=-1)
{
XPanel * panel = (XPanel*)GetPage(page);
xdmlASSERT(!panel->isActive());
panel->onUIActivate();
}
RecalcSize();
DFrame::UpdateLayout(this);
}
}
其中DFrame派生自wxFrame,XPanel派生自wxPanel。重新计算大小,并在GetSizer-> CalcMin()方法中查询最佳大小。这发生在ReCalcSize()中。我不知道用户设置的帧大小不会持久的原因。有没有办法动态存储所有孩子的修改大小呢?你可以为此发送一些代码吗?