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(...)
Était-ce utile?

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

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(...)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top