WindowFromPhysicalPoint
работает в physical
экранных координатах, а WindowFromPoint
работает с logical
. Чтобы понять разницу прочитайте эту страницу .
TL; DR; версия будет:
Предположим, вы создали диалоговое окно с кнопкой в координатах (100,
48). Когда это диалоговое окно отображается по умолчанию 96 точек на дюйм,
Кнопка расположена в физических координатах (100, 48). На 120 точек на дюйм, это
находится в физических координатах (125, 60). Но логичный
координаты одинаковы при любом значении dpi: (100, 48).
Так что, если вы не создадите свое приложение с поддержкой DPI Я бы придерживался logical
координат, так как большинство API и оконных сообщений работают в logical
пространстве. Другая причина использования logical
координат - сделать ваше приложение обратно совместимым с Windows XP.