WindowFromPhysicalPoint
是Vista的新功能。它的文档几乎与WindowFromPoint
相同。有什么不同?两者似乎都取一个绝对点(偏离屏幕原点)并返回包含该点的最顶层(Z顺序)HWND
。
答案 0 :(得分:5)
http://msdn.microsoft.com/en-us/library/ms633533(VS.85).aspx
Windows Vista引入了物理坐标的概念。当显示器为高dpi时,桌面窗口管理器(DWM)可以缩放每英寸点数(dpi)感知窗口。屏幕上显示的窗口对应于物理坐标。该应用程序继续在逻辑空间中工作。因此,应用程序的窗口视图与屏幕上显示的视图不同。对于缩放窗口,逻辑和物理坐标是不同的。
答案 1 :(得分:0)
WindowFromPhysicalPoint
在physical
屏幕坐标中运行,而WindowFromPoint
适用于logical
个屏幕坐标。要了解不同的read this page。
TL; DR;版本将是:
假设您设计了一个对话框,其中有一个坐标(100, 48)。当此对话框以默认的96 dpi显示时, 按钮位于物理坐标(100,48)。在120 dpi,它 位于物理坐标(125,60)。但合乎逻辑 在任何dpi设置下坐标都是相同的:(100,48)。
因此,除非您将应用设计为DPI aware,否则我会坚持使用logical
坐标,因为大多数API和窗口消息都在logical
空间中运行。使用logical
坐标的另一个原因是使您的应用程序向后兼容Windows XP。