15 мая 2023 года "Исходники.РУ" отмечают своё 23-летие!
Поздравляем всех причастных и неравнодушных с этим событием!
И огромное спасибо всем, кто был и остаётся с нами все эти годы!

Главная Форум Журнал Wiki DRKB Discuz!ML Помощь проекту


Как перевести клиентские координаты в координаты экрана

Функция GetClientRect всегда возвращает координаты (0, 0) для начала координат окна. Эта ситуация описывается в "Microsoft Windows Software Development Kit (SDK) Programmer's Reference".

Чтобы определить координаты экрана для клиентской области окна надо вызвать функцию ClientToScreen, которая позволяет перевести клиентские координаты, полученные после вызова функции GetClientRect, в координаты экрана. Следующий код демонстрирует, как использовать эти две функции вместе:

   RECT rMyRect;

   GetClientRect(hwnd, (LPRECT)&rMyRect);
   ClientToScreen(hwnd, (LPPOINT)&rMyRect.left);
   ClientToScreen(hwnd, (LPPOINT)&rMyRect.right);