SystemParametersInfo関数を使う。
RECT rect = {0, 0, 640, 480};
SystemParametersInfo(SPI_GETWORKAREA, NULL, &rect, NULL);
int WndX = rect.left + (rect.right - WndW)/2;
int WndY = rect.top + (rect.bottom - WndH)/2;
AdjustWindowRect関数と組み合わせると
//定数宣言
#define WND_S (WS_OVERLAPPED|WS_CAPTION|WS_SYSMENU|WS_MINIMIZEBOX)
RECT rect = {0, 0, 640, 480};
AdjustWindowRect(&rect, WND_S, FALSE);
int WndW = rect.right - rect.left;
int WndH = rect.bottom - rect.top;
SystemParametersInfo(SPI_GETWORKAREA, NULL, &rect, NULL);
int WndX = rect.left + (rect.right - WndW)/2;
int WndY = rect.top + (rect.bottom - WndH)/2;
//ウインドウの作成
hWnd = CreateWindow(
"AppName", //アプリケーション名
"sample", //ウインドウタイトル
WND_S, //ウインドウ設定
WndX, WndY, //表示位置X,Y
WndW, WndY, //幅、高さ
NULL,
NULL,
hInstance,
NULL);
これで描画領域(X:640,Y:480)かつウインドウが中央に配置されるようになった。