Win32/MFC Получить прямоугольник окна из прямоугольника клиента

StackOverflow https://stackoverflow.com/questions/140347

  •  02-07-2019
  •  | 
  •  

Вопрос

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

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

Он сделает что-то похожее на:

const CRect client(0, 0, 200, 200);
const CRect window = ClientRectToWindowRect(client);
SetWindowPos(...)
Это было полезно?

Решение

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

Другие советы

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

Клиенттоскрин

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

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

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

Для изменения положения управления используйте:

RECT client;
::SetRect(&client, 0, 0, 200, 200);
::MapWindowPoints(hwndControl, ::GetParent(hwndControl), (POINT*)&client, 2);
::SetWindowPos(...)
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top