0

固定サイズのパネル ( wxPanelから派生) があり、画像をブリットしたり、幾何学的形状を描画したりします。これはフレームに存在します ( wxFrameから派生)。

フレームが最大化/サイズ変更されるたびに、パネル( appinterface )をフレーム内の中央に配置する必要があります。また、4 方向すべての空きスペースにはタイル状の背景 (シームレス) が必要です。

サイザー、水平および垂直ボックスサイザーを使用して中央に配置できますが、空のスペースを埋めるにはどうすればよいですか?

これは、現在パネルを水平方向に中央揃えするだけの私のコードです。

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 内のものは絶対座標を使用して描画されるため、単純に中央に描画するのは簡単ではありません。

4

0 に答える 0