当我在两个具有不同缩放比例的监视器之间移动窗口时,从WM_DPICHANGED获得的RECT无法缩放,无论将其移动到哪个监视器,我都得到相同的像素尺寸(这导致该窗口对于监视器或内容太小)。通过使用Spy ++,其他应用程序也是如此。 documentation 建议默认情况下应使用DPI对其进行线性缩放。
我的应用程序使用Qt Quick,它默认设置PROCESS_PER_MONITOR_DPI_AWARE
。我还用自己的代码尝试过SetProcessDpiAwareness(PROCESS_SYSTEM_DPI_AWARE)
,它在窗口大小方面可以按我的意愿工作,但是辅助监视器上的内容却很模糊(如您所愿),而SetProcessDpiAwarenessContext(DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2)
就像Qt默认值一样工作,但也可以正确缩放窗口装饰。在所有3种情况下,窗口内容都可以正确缩放。
我想知道Windows本身是否有问题,或者更新是否改变了这种行为,因为目前没有应用程序可以正确调整我的大小,而且我很确定某些应用程序,例如Explorer和Edge至少曾经使用过。我当前正在使用Windows 10 17134。