クライアントrectを受け入れ、それをウィンドウrectに変換する関数がどこかにあることを私は知っています。見つけられない/思い出せない!
誰がそれが何であるか知っていますか?
次のようになります。
const CRect client(0, 0, 200, 200);
const CRect window = ClientRectToWindowRect(client);
SetWindowPos(...)
あなたはおそらく考えてAdjustWindowRectEx()
いる. これは、ウィンドウを作成するときに使用することを意図していることに注意してください。既存のウィンドウの正確なウィンドウ寸法のセットが生成されるという保証はありません。そのためには、 を使用しますGetWindowRect()
。
クライアント座標をウィンドウ座標にマップする場合は、ClientToWindow API を使用します。
クライアント座標を画面座標にマップする場合は、ClientToScreen API を使用します。
コントロールの再配置用:
RECT client;
::SetRect(&client, 0, 0, 200, 200);
::MapWindowPoints(hwndControl, ::GetParent(hwndControl), (POINT*)&client, 2);
::SetWindowPos(...)