0

私はこの1日を費やして、wxRibbonバーを入手する方法を考えました。少し手間がかかりましたが、ようやくリボンバーが機能するようになりました。アプリケーションの右側にある小さなスペースを除いて、リボンバーがウィンドウ全体を占めることを除いて。

メインウィンドウでテストするために使用しているコードは次のとおりです。

Win_app::Win_app(const wxString& title)
       : wxFrame(NULL, wxID_ANY, title, wxDefaultPosition, wxSize(640, 480))
{

    wxRibbonBar* mainMenu = new wxRibbonBar(this,-1,wxDefaultPosition,wxSize(20,40));


    wxRibbonPage* home = new wxRibbonPage(mainMenu, wxID_ANY, wxT("Home"));

    wxRibbonPanel *test_panel1 = new wxRibbonPanel(home, wxID_ANY, wxT("Panel 1"), 
                                            wxNullBitmap, wxDefaultPosition, wxSize(320,60));

    wxRibbonPanel *test_panel2 = new wxRibbonPanel(home, wxID_ANY, wxT("Panel 2"), 
                                            wxNullBitmap, wxDefaultPosition, wxSize(320,60));

    wxRibbonPage* page = new wxRibbonPage(mainMenu, wxID_ANY, wxT("Another Page"));

    wxRibbonPanel *test_panel3 = new wxRibbonPanel(page, wxID_ANY, wxT("Panel 3"), 
                                            wxNullBitmap, wxDefaultPosition, wxSize(640,60));


    mainMenu->Realize();


    Centre();
}

私はwxWidgets2.9.4を使用しています。どんな助けでも大歓迎です!読んでくれてありがとう。

4

1 に答える 1

1

にある wxWidgets インストールのリボン サンプルを参照することをお勧めしますwxdir\samples\ribbon。wxRibbonBar をサイザーに追加するという点で主な違いがありますが、コードとほぼ同じように見えます。

wxSizer *s = new wxBoxSizer(wxVERTICAL);

s->Add(m_ribbon, 0, wxEXPAND);
s->Add(m_logwindow, 1, wxEXPAND);
s->Add(m_togglePanels, wxSizerFlags().Border());

SetSizer(s);

ダイアログに単一のコントロールがある場合、ダイアログが自動的に塗りつぶされるため、これを行う必要があります。この場合、これは望ましくない動作です。

于 2013-01-09T10:18:49.463 に答える