WindowFromPhysicalPoint和WindowFromPoint有什么区别?

时间:2010-12-01 13:45:46

标签: winapi

WindowFromPhysicalPoint是Vista的新功能。它的文档几乎与WindowFromPoint相同。有什么不同?两者似乎都取一个绝对点(偏离屏幕原点)并返回包含该点的最顶层(Z顺序)HWND

2 个答案:

答案 0 :(得分:5)

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

Windows Vista引入了物理坐标的概念。当显示器为高dpi时,桌面窗口管理器(DWM)可以缩放每英寸点数(dpi)感知窗口。屏幕上显示的窗口对应于物理坐标。该应用程序继续在逻辑空间中工作。因此,应用程序的窗口视图与屏幕上显示的视图不同。对于缩放窗口,逻辑和物理坐标是不同的。

答案 1 :(得分:0)

WindowFromPhysicalPointphysical屏幕坐标中运行,而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。