WindowFromPhysicalPoint
est nouveau avec Vista. Sa documentation est presque identique à WindowFromPoint
. Quelle est la différence? Les deux semblent prendre un point absolu (décalage par rapport à l'origine de l'écran) et renvoyer le plus haut (ordre Z) HWND
qui contient le point.Quelle est la différence entre WindowFromPhysicalPoint et WindowFromPoint?
Répondre
http://msdn.microsoft.com/en-us/library/ms633533(VS.85).aspx
Windows Vista introduit le concept de coordonnées physiques. Desktop Window Manager (DWM) met à l'échelle les fenêtres prenant en charge les points par pouce (dpi) lorsque l'affichage est en haute résolution. La fenêtre vue sur l'écran correspond aux coordonnées physiques. L'application continue de fonctionner dans l'espace logique. Par conséquent, la vue de l'application de la fenêtre est différente de celle qui apparaît sur l'écran. Pour les fenêtres à l'échelle, les coordonnées logiques et physiques sont différentes.
WindowFromPhysicalPoint
fonctionne dans les coordonnées d'écran physical
, tandis que WindowFromPoint
fonctionne avec logical
. Pour comprendre les différents read this page.
TL; DR; version serait:
Supposons que vous créez une boîte de dialogue avec un bouton à coordonnées (100, 48). Lorsque cette boîte de dialogue est affichée par défaut à 96 ppp, le bouton est situé aux coordonnées physiques de (100, 48). À 120 dpi, est situé aux coordonnées physiques de (125, 60). Mais les coordonnées logiques sont les mêmes pour n'importe quel paramètre ppp: (100, 48).
Donc, à moins que vous concevez votre application pour être DPI aware Je tiendrais avec logical
coordonnées, puisque la plupart des API et des messages de fenêtre fonctionnent dans l'espace logical
. Une autre raison d'utiliser les coordonnées logical
est de rendre votre application rétrocompatible avec Windows XP.