Win32 / MFC Получить окно Rect из клиента Rect - PullRequest
2 голосов
/ 26 сентября 2008

Я знаю, что где-то есть функция, которая примет прямоугольник клиента и преобразует его в прямоугольник окна для вас. Я просто не могу найти / запомнить это!

Кто-нибудь знает, что это?

Это будет делать что-то похожее на:

const CRect client(0, 0, 200, 200);
const CRect window = ClientRectToWindowRect(client);
SetWindowPos(...)

Ответы [ 4 ]

5 голосов
/ 26 сентября 2008

Вы, вероятно, думаете о AdjustWindowRectEx(). Имейте в виду, это предназначено для использования, когда создает окно - нет гарантии, что оно произведет точный набор размеров окна для существующего окна; для этого используйте GetWindowRect().

0 голосов
/ 08 января 2014

Для контрольной репозиции используйте:

RECT client;
::SetRect(&client, 0, 0, 200, 200);
::MapWindowPoints(hwndControl, ::GetParent(hwndControl), (POINT*)&client, 2);
::SetWindowPos(...)
0 голосов
/ 29 сентября 2008

Если вы хотите отобразить клиентские координаты в оконные координаты, используйте API ClientToWindow .

Если вы хотите отобразить клиентские координаты на экранные координаты, используйте ClientToScreen API.

0 голосов
/ 26 сентября 2008

Это то, что вы ищете?

ClientToScreen

http://msdn.microsoft.com/en-us/library/ms532670(VS.85).aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...