Win32 / MFC Get Fenster rect vom Client rect
Frage
Ich weiß, es ist eine Funktion irgendwo, dass ein Client-rect akzeptiert und wird es in ein Fenster rect für Sie konvertieren. Ich kann einfach nicht finden / daran erinnern!
Wer weiß, was es ist?
Es wird etwas tun, ähnlich wie:
const CRect client(0, 0, 200, 200);
const CRect window = ClientRectToWindowRect(client);
SetWindowPos(...)
Lösung
Sie denken vermutlich von AdjustWindowRectEx()
. Denken Sie daran, dies ist für die Verwendung bei den Erstellen ein Fenster - es gibt keine Garantie, dass es einen genauen Satz von Fensterabmessungen für ein vorhandenes Fenster zu erzeugen; GetWindowRect()
.
Andere Tipps
Ist das, was Sie suchen?
ClientToScreen
http://msdn.microsoft.com/ en-us / library / ms532670 (VS.85) aspx
Wenn Sie die Client-Koordinaten zu Fenster-Koordinaten abbilden möchten verwenden Sie die ClientToWindow API.
Wenn Sie Client-Koordinaten abbilden Koordinaten verwenden Sie die ClientToScreen API zu screenen.
Für die Steuerung neu zu positionieren Verwendung:
RECT client;
::SetRect(&client, 0, 0, 200, 200);
::MapWindowPoints(hwndControl, ::GetParent(hwndControl), (POINT*)&client, 2);
::SetWindowPos(...)