wxWindow 自动适应父窗口大小

Kac*_*iej 3 c++ wxwidgets

如何使(它在-> -> ...wxGrid之后继承)对象大小适合父级大小?我尝试了方法,但不起作用。 方法:wxScrollerWindowwxWindowswxPanelFitOnInit

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;
}
Run Code Online (Sandbox Code Playgroud)

MyApp继承后wxApp

Ano*_*ard 5

您可能想使用sizer

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

当调整 wxFrame 的大小时(以及第一次显示时),它会自动调整其唯一(直接)子窗口(面板)的大小以适合其客户端大小。然后面板的大小调整器将调整网格的大小。