ウィンドウの概要
ウィンドウの構成
次の図は,代表的なウィンドウの構成を示したものです。
ウィンドウ枠内の白く塗り潰された部分は,クライアント領域 (client area) と呼ばれます。
ウィンドウで表示すべきコンテンツは,主にクライアント領域に描画します。
次の図は,各種コントロールを持つウィンドウです。
エディットコントロール,ボタンコントロールのような,ウィンドウの部品として設計されたウィンドウのことを,コントロール (control) と言います。
コントロールはウィンドウの一種であり,普通のウィンドウを作るのと同じ関数で作成することができます。
ウィンドウ間の主従関係
ウィンドウ間の主従関係には,次の 2 通りの関係があります。
- 親ウィンドウ (parent window) と子ウィンドウ (child window)
- オーナーウィンドウ (owner window) とオーナー付きウィンドウ (owned window)
親ウィンドウと子ウィンドウの関係は,ウィンドウ間に所有関係があり,子ウィンドウが親ウィンドウのクライアント領域に描画される関係を言います。
エディットコントロールやボタンコントロールといったコントロールは,代表的な子ウィンドウです。
一方のオーナーウィンドウとオーナー付きウィンドウの関係は,ウィンドウ間に所有関係があり,オーナー付きウィンドウの描画位置がオーナーウィンドウから自立している関係を言います。
ダイアログボックスやメッセージボックスは,代表的なオーナー付きウィンドウです。
ウィンドウの種類
Windows におけるウィンドウは,ウィンドウスタイルによって主に次の 3 つに分類できます。
- オーバーラップウィンドウ (overlapped window)
- ポップアップウィンドウ (pop-up window)
- 子ウィンドウ (child window)
次の図のような,いわゆる一般的なスタイルを持つウィンドウは,オーバーラップウィンドウと呼ばれます。
本来,オーバーラップという言葉はウィンドウの配置方式を指す言葉ですが,ここでは配置方式は関心事ではありません。
ポップアップウィンドウは,メッセージボックスやダイアログボックスに代表されるスタイルを持つウィンドウです。
子ウィンドウについては先に説明した通りです。
エディットコントロールやボタンコントロールといったコントロールは,代表的な子ウィンドウです。
座標系
Windows プログラミングでは次の 2 つの座標系がよく使われます。
- スクリーン座標系: 画面の左上端を原点に取り,右方向に x 軸,下方向に y 軸を取る。
- クライアント座標系: クライアント領域の左上端を原点に取り,右方向に x 軸,下方向に y 軸を取る。