wxWindow автоматически подгоняется к размеру родительского окна

Как я могу сделать wxGrid (наследуется после wxScrollerWindow -> wxWindows -> …) размер объекта соответствует родительскому wxPanel размер?
Я старался Fit метод, но это не работает.
OnInit метод:

bool MyApp::OnInit()
{
wxFrame * win = new wxFrame(NULL, -1, _T("App"), wxPoint(300,300), wxSize(400,300), wxDEFAULT_FRAME_STYLE);
wxPanel * panel = new wxPanel(win, -1);
wxGrid * grid = new wxGrid(panel, -1, wxPoint(5,5), wxSize(300,200));
grid->SetDefaultColSize(120);
grid->SetDefaultRowSize(55);
grid->SetRowLabelSize(55);
grid->SetColLabelSize(25);
grid->CreateGrid(2,6,wxGrid::wxGridSelectCells);
grid->Fit();
win->Show();
return true;
}

MyApp наследует после wxApp,

2

Решение

Вы можете использовать классификатор:

wxSizer* sizer = new wxBoxSizer(wxHORIZONTAL);
// expand contents, add 5px border on all sides:
sizer->Add(grid,1,wxEXPAND|wxALL,5);
panel->SetSizer(sizer);

Когда размер wxFrame изменяется (как и при первом показе), он автоматически изменяет размеры своего единственного (прямого) дочернего окна (панели), чтобы соответствовать его размеру клиента. Sizer панели изменит размер сетки.

3

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector