GetClientRect

GetClientRectは、ウィンドウのクライアント領域の矩形情報を取得する。

GetClientRect function | Microsoft Docs

GetWindowRectでは、デスクトップ画面の左上を原点とするスクリーン座標だったが、GetClientRectの場合は、左端、上端は0に固定されていて、実質、右端、下端、の数値がサイズ(幅と高さ)も表している。
さて、WM_SIZEも、リサイズ後のクライアント領域のサイズ(幅と高さ)を表していることは以前扱った。
つまり、この2種類の方法で取得した矩形情報は同じ値になるはずである。

WM_SIZEで、

rcWmSizeには、WM_SIZEで渡されたlParamから幅と高さをセットしている。
rcClientは、GetClientRectで取得している。
そのあと、InvalidateRectで画面更新。

WM_PAINTでは、

WM_SIZEで取得したrcWmSizeは、赤で描画。
GetClientRectで取得したrcClientは、青で描画。

起動時
起動時

起動時、値は一緒。

小さくしても一緒
小さくしても一緒

小さくしても一緒。

再度少し横に広げても一緒
再度少し横に広げても一緒

再度少し横に広げても一緒、全く同じである。

Sample/winapi/GetClientRect/GetClientRect/src/GetClientRect at master · bg1bgst333/Sample · GitHub