这是我的布局:
我有一个包含网格(比例为 1)和确定/取消按钮栏的 sizer
所有的东西都在一个 wxDialog 中
这里是:
|||||||||||||||
| |
| GRID |
| |
| |
| |
|||||||||||||||
| OK CANCEL |
|||||||||||||||
问题是网格包含的行太多,溢出屏幕,所以最后我看不到对话框的顶部。有没有办法在对话框上调用 Fit() 时限制其高度?
我试过这样的东西:SetSizeHints(-1,-1,-1,500);
和 SetMaxSize(500,500)
但它没有用。
我也尝试这样做:this->SetSize(this->GetSize().GetX(), 500);
,但是由于垂直滚动条出现在网格上,它不够宽,会出现水平滚动条。
编辑
在构造函数中我调用了wxGrid(parent, wxID_ANY, wxDefaultPosition, wxDefaultSize)
最佳答案
处理此问题的最简单方法是使用固定大小的网格。如果行数多于适合的行数,则会出现滚动条。您可以在构造函数中设置所需的大小。
new wxGrid( this, IDC_grid, wxPoint(-1,-1),wxSize(igridxsize,igridysize));
如果你想调整网格的大小,例如当用户调整应用程序窗口大小时,事情就有点复杂了。您需要处理窗口大小事件并适当更改网格大小。
沿着这些线的东西:
myDialog::OnSize(wxSizeEvent& event);
{
wxSize dialogSize = event.GetSize();
myGrid->OnSize( wxSizeEvent(
dialogSize.GetWidth() * 0.9, dialogSize.GetHeight() * 0.7 ));
}
关于c++ - 在对话框 (wxDialog) 中安装一个大网格 (wxGrid),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6070430/