我有一个固定大小的面板(从wxPanel派生),我在其上对图像进行 blit 图像/绘制几何形状。这存在于框架中(源自wxFrame)。
现在,每当框架最大化/调整大小时,我希望面板(appinterface )在框架内居中。此外,所有四个方向的空白区域都应具有平铺背景(无缝)。
我可以使用 sizers、水平和垂直boxsizers 居中,但我如何填充空白空间。
这是我的代码,目前仅将面板水平居中。
wxBoxSizer *sizer = new wxBoxSizer(wxHORIZONTAL);
appInterface = new Interface((wxFrame *)this, kFrameWidth - 20, kFrameHeight - 110);
sizer->Add(1, 1, 1, wxEXPAND);
sizer->Add(appInterface, 1, wxEXPAND | wxALIGN_CENTER);
sizer->Add(1, 1, 1, wxEXPAND);
SetSizer(sizer);
SetAutoLayout(true);
我想我不能在框架中添加背景,也不能在面板内添加面板,因为如果可能的话,那么解决我的问题就很容易了。
注意:appinterface 里面的东西是用绝对坐标绘制的,所以简单的在中心绘制并不容易。