クライアント領域とウィンドウサイズの関係

Win32APIによって操作できるウィンドウの領域には,ウィンドウ全体の領域とクライアント領域がある.

ウィンドウを生成する関数CreateWindowの引数には,ウィンドウの横方向のサイズ(X),縦方向のサイズ(Y)を指定する.この横方向のサイズ×縦方向のサイズがウィンドウ全体の領域となる.

一方,クライアント領域とは,ウィンドウ中の描画領域のことで,そのサイズは,ウィンドウ全体の領域のサイズからメニューやウィンドウの端のサイズを引いたものとなる.

ウィンドウ全体の領域の横方向のサイズをX,縦方向のサイズをY,クライント領域の横方向のサイズをX',縦方向のサイズをY'これらを図示すると以下のとおり.

そして,クライアント領域とウィンドウ全体の領域のサイズの関係を知るために,ウィンドウのクライアント領域をクリックしたときにその座標をコンソール出力するプログラムを作成した.

試したところ,X=320, Y=240でウィンドウを生成したとき,クライアント領域の一番右下をクリックしたときに表示される座標は,X'=303,Y'=181であった.

横方向に17,縦方向に59の差がある.

ビミョー