我付出了巨大的努力,将我的MFC应用程序从开始Sytem DPI aware (High DPI aware)
迁移到Per Monitor High DPI Aware
。我看到我使用的MFC组件,如对话框,消息框等仍然不是per-monitor-dpi aware
,而是它们仍然表现得像system-dpi aware
。现在,随着Windows DPI虚拟化的消失,当我的机器的不同显示器具有不同的DPI缩放时,这些组件显示得更糟。
例如
考虑2个监视器M1(带有150% dpi scaling
的3840x2160)和M2(带有100% DPI scaling
的1280x1024)。现在,当我的应用程序在M2上运行时,一个用于选择适合M2的颜色的对话框不适合它(早期的Windows操作系统由于DPI虚拟化而缩小了它)。
是否有任何新的MFC组件从Windows 8开始引入,它们是每个monitor-dpi意识到的?例如。 DIALOGEX2
代替DIALOGEX
?