每个监视器DPI感知MFC组件

时间:2017-08-07 15:00:19

标签: c++ windows-8 mfc windows-10 dpi-aware

我付出了巨大的努力,将我的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

0 个答案:

没有答案