Win32 / MFC Obtenir la fenêtre rect depuis le client rect
Question
Je sais qu’il existe une fonction quelque part qui acceptera un droit de client et le convertira en un droit de fenêtre pour vous. Je ne peux tout simplement pas le trouver / m'en souvenir!
Est-ce que quelqu'un sait ce que c'est?
Cela fera quelque chose de similaire à:
const CRect client(0, 0, 200, 200);
const CRect window = ClientRectToWindowRect(client);
SetWindowPos(...)
La solution
Vous pensez probablement à AdjustWindowRectEx ( )
. N'oubliez pas que cette option est destinée à être utilisée lors de la création d'une fenêtre - rien ne garantit qu'elle produira un ensemble précis de dimensions de fenêtre pour une fenêtre existante; Pour cela, utilisez GetWindowRect ()
.
Autres conseils
Est-ce ce que vous cherchez?
ClientToScreen
http://msdn.microsoft.com/ en-us / library / ms532670 (VS.85) .aspx
Si vous souhaitez mapper les coordonnées du client sur les coordonnées de la fenêtre, utilisez l'API ClientToWindow .
Si vous souhaitez mapper les coordonnées du client sur les coordonnées de filtrage, utilisez l'API ClientToScreen .
Pour repositionnement de contrôle, utilisez:
RECT client;
::SetRect(&client, 0, 0, 200, 200);
::MapWindowPoints(hwndControl, ::GetParent(hwndControl), (POINT*)&client, 2);
::SetWindowPos(...)