Working with Windows
可視要素のレイアウト
フレームを肉付けするためには数々の wxWindow のサブクラスを使用することになります。
フレームに配置したいであろうより一般的な要素はこれらです。
- wxMenuBar, フレーム上部に沿ってメニューバーを配置します
- wxStatusBar, フレーム下部に設置され、アプリケーションの状態を表示します。
- wxToolBar, ツールバーをフレームに設置します
- wxControl のサブクラス。UI ウィジェットをあらわすオブジェクト(たとえばデータを見せたり、ユーザーの入力を処理したり、もしくはその両方を行う可視要素)。
たとえば wxButton, wxStaticText, wxTextCtrl や wxComboBox など。
- wxPanel, wxControl オブジェクトを保持するコンテナ。wxPanel に wxControl オブジェクトを配置すると
UIの部品から部品へユーザがタブを使って移動できます。
全ての可視要素(wxWindows とサブクラスのオブジェクト)は子要素を持つことが出来ます。
このようにして wxFrame は多くの wxButton, wxStaticText, wxTextCtrl のオブジェクトなどを保持し、
全体的な要素の階層を与えます。
これは単に可視要素の関係について記述してあるのであり、見た目でどのように配置されるのか
ではないことに注意してください。
フレーム中での要素のレイアウトの取り扱いのために、いくつかのオプションがあります。
- 親ウィンドウに対するピクセル座標をそれぞれの要素に対して手動で指定する方法。
プラットフォーム間のフォントサイズなどの違いのため、一般的にこのオプションは非推奨です。
- wxLayoutConstraints を使用する方法。ただしかなり複雑です。
- Delphi のようなレイアウトアンカーを使う方法。これは wxLayoutConstraints を簡単に使えるようにします。
- wxSizer のサブクラスを使用する方法。
このドキュメントでは最も慣れ親しんでいる wxSizer を使用する方法に絞っています。