Win32 / MFC Ottieni il rect della finestra dal rect del client
Domanda
So che esiste una funzione da qualche parte che accetterà un rect client e lo convertirà in un rect finestra per te. Non riesco proprio a trovarlo / ricordarlo!
Qualcuno sa di cosa si tratta?
Farà qualcosa di simile a:
const CRect client(0, 0, 200, 200);
const CRect window = ClientRectToWindowRect(client);
SetWindowPos(...)
Soluzione
Probabilmente stai pensando a AdjustWindowRectEx ( )
. Tieni presente che questo è destinato all'uso durante la creazione di una finestra: non esiste alcuna garanzia che produrrà un insieme accurato di dimensioni della finestra per una finestra esistente; per questo, usa GetWindowRect ()
.
Altri suggerimenti
È questo quello che stai cercando?
ClientToScreen
http://msdn.microsoft.com/ it-it / library / ms532670 (VS.85) aspx
Se si desidera mappare le coordinate del client alle coordinate della finestra, utilizzare l'API ClientToWindow .
Se si desidera mappare le coordinate del client allo schermo delle coordinate, utilizzare l'API ClientToScreen .
Per riposizionare il controllo usare:
RECT client;
::SetRect(&client, 0, 0, 200, 200);
::MapWindowPoints(hwndControl, ::GetParent(hwndControl), (POINT*)&client, 2);
::SetWindowPos(...)