Мне нужно иметь 3 панели в рамке, в которой левая панель и правая панель должны быть понятны пользователю, перетаскивая ее влево или вправо. Я сделал это с помощью диспетчера AUI, но я хотел бы сделать то же самое без использования AUI (может быть, sizers). Любые идеи, как достичь этого? Я попытался как показано ниже, но я не могу изменить размер панели.Как создать изменяемые размеры панелей в wxwidgets?
MyFrame1 :: MyFrame1 (wxWindow * Родитель, wxWindowID идентификатор, Const wxString & названия, Const wxPoint & поз, Const wxSize & размера, длинный стиль): wxFrame (родитель, идентификатор, название, позиция, размер, стиль) { this-> SetSizeHints (wxDefaultSize, wxDefaultSize);
wxBoxSizer* bSizer6;
bSizer6 = new wxBoxSizer(wxHORIZONTAL);
wxBoxSizer* bSizer7;
bSizer7 = new wxBoxSizer(wxHORIZONTAL);
m_panel11 = new wxPanel(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL);
bSizer7->Add(m_panel11, 5, wxEXPAND | wxALL, 5);
bSizer7->Add(0, 0, 1, wxEXPAND, 5);
bSizer6->Add(bSizer7, 1, wxEXPAND, 5);
wxBoxSizer* bSizer9;
bSizer9 = new wxBoxSizer(wxHORIZONTAL);
m_panel12 = new wxPanel(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL);
bSizer9->Add(m_panel12, 1, wxEXPAND | wxALL, 5);
bSizer6->Add(bSizer9, 1, wxEXPAND, 5);
wxBoxSizer* bSizer10;
bSizer10 = new wxBoxSizer(wxHORIZONTAL);
m_panel13 = new wxPanel(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL);
bSizer10->Add(m_panel13, 1, wxEXPAND | wxALL, 5);
bSizer6->Add(bSizer10, 1, wxEXPAND, 5);
this->SetSizer(bSizer6);
this->Layout();
this->Centre(wxBOTH);
}
Этот вопрос может быть уместным: http://stackoverflow.com/questions/25519083/gui-layout-with-wxsizer-wxsashwindow – shawnhcorey
@shawnhcorey: спасибо, что указал на эту ссылку. Но это не совсем то, что я ищу. – StraightCirle