首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >wxWidget多行笔记本-看不到第二行

wxWidget多行笔记本-看不到第二行
EN

Stack Overflow用户
提问于 2008-11-20 13:34:37
回答 3查看 550关注 0票数 1

这段代码可以完美地工作

代码语言:javascript
复制
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样式无法正常工作:选项卡的第二行被遮挡且不可读

代码语言:javascript
复制
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" );

如何正确使用多行样式?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-11-04 21:54:33

最后,找到了一个优雅的解决方案。我需要在调整大小后强制刷新。

代码语言:javascript
复制
void MyFrame::OnSize(wxSizeEvent& )
{
    if( myNotebook ) {
        myNotebook->SetSize( GetClientRect() );
        myNotebook->Refresh();
    }
}
票数 0
EN

Stack Overflow用户

发布于 2008-11-20 16:57:34

经过实验,我发现了这样的方式:

在所有AddPage()调用之后添加一行

代码语言:javascript
复制
    myNotebook->Layout();
票数 1
EN

Stack Overflow用户

发布于 2009-10-22 03:53:47

问题似乎是包含笔记本页面的面板覆盖了第二行选项卡。

我可以通过处理EVT_NOTEBOOK_PAGE_CHANGED事件并添加下面这行代码来强制面板移开

代码语言:javascript
复制
myNotebook->GetPage( event.GetSelection() )->Move(0,40);

丑陋,但它做了这项工作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/305307

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档