C++ wxWindow自动适应父窗口大小
如何使C++ wxWindow自动适应父窗口大小,c++,wxwidgets,C++,Wxwidgets,如何使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
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
之后继承您可能需要使用:
调整wxFrame的大小时(以及第一次显示时),它会自动调整其唯一(直接)子窗口(面板)的大小,以适合其客户端大小。然后,面板的大小调整器将调整网格的大小
wxSizer* sizer = new wxBoxSizer(wxHORIZONTAL);
// expand contents, add 5px border on all sides:
sizer->Add(grid,1,wxEXPAND|wxALL,5);
panel->SetSizer(sizer);