如何在Process_System_DPI_Aware

时间:2015-05-09 06:59:40

标签: winapi

我正在为Firefox制作插件。 Firefox设置为Process_System_DPI_Aware。我有监视器的句柄,是否可以获得正确的监视器矩形?

到目前为止,我尝试的所有方法都给了我主监视器的DPI。

我想使用LogicalToPhysicalPointForPerMonitorDPI,因为它说它应该可以工作但是我没有窗口来提供这个功能。第二台显示器上没有窗户。我正试图截取该桌面的截图。

由于

2 个答案:

答案 0 :(得分:1)

您正在使用每个监视器的dpi设置,但您的进程不是每个监视器dpi感知。因此,您的辅助监视器具有dpi虚拟化功能。

您应该从每个监视器的dpi识别过程中执行屏幕截图代码。

答案 1 :(得分:1)

您可以创建不可见窗口,使用EnumDisplayMonitors枚举监视器,使用GetMonitorInfo获取虚拟化rects,为每个监视器移动和调整隐藏窗口全屏,并使用LogicalToPhysicalPointForPerMonitorDPI获得真正的监视器矩形。