【发布时间】:2011-06-30 20:38:52
【问题描述】:
如果我创建一个 wxNotebook 并用几个页面填充它,wxNotebook 的内容区域在每个选项卡上都是相同的大小(具有最大内容的页面的大小)。有没有办法动态调整 wxNotebook 的大小,使其仅与包含该视图中的面板一样大,例如当抛出 EVT_NOTEBOOK_PAGE_CHANGED 时?
【问题讨论】:
标签: wxwidgets
如果我创建一个 wxNotebook 并用几个页面填充它,wxNotebook 的内容区域在每个选项卡上都是相同的大小(具有最大内容的页面的大小)。有没有办法动态调整 wxNotebook 的大小,使其仅与包含该视图中的面板一样大,例如当抛出 EVT_NOTEBOOK_PAGE_CHANGED 时?
【问题讨论】:
标签: wxwidgets
我设法调整了 wxNotebook 的大小,但无法以编程方式获取选项卡的大小。我在笔记本中添加面板,我知道每个面板的大小。 所以我连接了事件:
m_notebook->Connect(wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED, wxNotebookEventHandler(MyClass::OnTabSelect), NULL, this);
这是一个示例事件监听器:
void MyClass::OnTabSelect( wxNotebookEvent& event )
{
wxSize s = GetSize();
int tabIndex = event.GetSelection();
s.x = m_tabWidth[tabIndex];
s.y = m_tabHeight[tabIndex];
SetSize(s);
Refresh();
event.Skip();
}
【讨论】: