2010-12-01 12 views

Répondre

3

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.

0

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.