这段代码可以完美地工作
myNotebook = new wxNotebook( this, IDC_NOTEBOOK, wxDefaultPosition, wxSize(500, 500) );
myNotebook->AddPage( new wxNotebookPage( myNotebook, -1 ), L"TEST RECOMMENDATIONS 1" );
myNotebook->AddPage( new wxNotebookPage( myNotebook, -1 ), L"TEST RECOMMENDATIONS 2" );
myNotebook->AddPage( new wxNotebookPage( myNotebook, -1 ), L"TEST RECOMMENDATIONS 3" );
myNotebook->AddPage( new wxNotebookPage( myNotebook, -1 ), L"TEST RECOMMENDATIONS 4" );
myNotebook->AddPage( new wxNotebookPage( myNotebook, -1 ), L"TEST RECOMMENDATIONS 5" );
myNotebook->AddPage( new wxNotebookPage( myNotebook, -1 ), L"TEST RECOMMENDATIONS 6" );然而,选项卡名称太长且数量太多,以至于必须水平滚动。
使用wxNB_MULTILINE样式无法正常工作:选项卡的第二行被遮挡且不可读
myNotebook = new wxNotebook( this, IDC_NOTEBOOK, wxDefaultPosition, wxSize(500, 500), wxNB_MULTILINE );
myNotebook->AddPage( new wxNotebookPage( myNotebook, -1 ), L"TEST RECOMMENDATIONS 1" );
myNotebook->AddPage( new wxNotebookPage( myNotebook, -1 ), L"TEST RECOMMENDATIONS 2" );
myNotebook->AddPage( new wxNotebookPage( myNotebook, -1 ), L"TEST RECOMMENDATIONS 3" );
myNotebook->AddPage( new wxNotebookPage( myNotebook, -1 ), L"TEST RECOMMENDATIONS 4" );
myNotebook->AddPage( new wxNotebookPage( myNotebook, -1 ), L"TEST RECOMMENDATIONS 5" );
myNotebook->AddPage( new wxNotebookPage( myNotebook, -1 ), L"TEST RECOMMENDATIONS 6" );如何正确使用多行样式?
发布于 2009-11-04 21:54:33
最后,找到了一个优雅的解决方案。我需要在调整大小后强制刷新。
void MyFrame::OnSize(wxSizeEvent& )
{
if( myNotebook ) {
myNotebook->SetSize( GetClientRect() );
myNotebook->Refresh();
}
}发布于 2008-11-20 16:57:34
经过实验,我发现了这样的方式:
在所有AddPage()调用之后添加一行
myNotebook->Layout();发布于 2009-10-22 03:53:47
问题似乎是包含笔记本页面的面板覆盖了第二行选项卡。
我可以通过处理EVT_NOTEBOOK_PAGE_CHANGED事件并添加下面这行代码来强制面板移开
myNotebook->GetPage( event.GetSelection() )->Move(0,40);丑陋,但它做了这项工作。
https://stackoverflow.com/questions/305307
复制相似问题