В чем разница между WindowFromPhysicalPoint и WindowFromPoint? - PullRequest
6 голосов
/ 01 декабря 2010

WindowFromPhysicalPoint является новым с Vista. Его документация почти идентична WindowFromPoint. Какая разница? Кажется, что оба принимают абсолютную точку (смещение от начала экрана) и возвращают самую верхнюю (Z-порядок) HWND, которая содержит точку.

Ответы [ 2 ]

5 голосов
/ 01 декабря 2010

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

В Windows Vista вводится понятие физических координат. Диспетчер окон рабочего стола (DWM) масштабирует окна без точек на дюйм (dpi), когда дисплей имеет высокое разрешение Видимое на экране окно соответствует физическим координатам. Приложение продолжает работать в логическом пространстве. Таким образом, вид окна приложения отличается от того, что отображается на экране. Для масштабированных окон логические и физические координаты различны.

0 голосов
/ 22 июля 2016

WindowFromPhysicalPoint работает в physical экранных координатах, а WindowFromPoint работает с logical. Чтобы понять разницу прочитайте эту страницу .

TL; DR; версия будет:

Предположим, вы создали диалоговое окно с кнопкой в ​​координатах (100, 48). Когда это диалоговое окно отображается по умолчанию 96 точек на дюйм, Кнопка расположена в физических координатах (100, 48). На 120 точек на дюйм, это находится в физических координатах (125, 60). Но логичный координаты одинаковы при любом значении dpi: (100, 48).

Так что, если вы не создадите свое приложение с поддержкой DPI Я бы придерживался logical координат, так как большинство API и оконных сообщений работают в logical пространстве. Другая причина использования logical координат - сделать ваше приложение обратно совместимым с Windows XP.

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