2012-11-18 42 views
2

我该如何制作wxGrid(它继承wxScrollerWindow - >wxWindows - > ...)对象大小适合父母wxPanel大小? 我试过Fit方法,但它不起作用。 OnInit方法:wxAppwxWindow auto适合父窗口大小

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继承。

回答

3

您可能需要使用一个sizer

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将调整网格大小。

相关问题