MSDN: Windows上的高DPI桌面应用程序开发
下面我们依次讨论这3种方式:
第一种Unaware, 该种方式是告诉系统, 我的程序不支持DPI aware, 请通过DWM虚拟化帮我们实现。 该方式和上面Win7/Win8对高DPI的支持的实现基本一样,主要区别是它通过GetWindowRect取到的坐标都是经过DWM缩放后的, 无论对方窗口是不是支持DWM虚拟化。
第二种方式是System DPI aware, 该方式下告诉系统, 我的程序会在启动的显示器上自己支持DPI aware, 所以不需要对我进行DWM 虚拟化。 但是当我的程序被拖动到其他DPI不一样的显示器时, 请对我们先进行system DWM虚拟化缩放。
第三种方式是Per Monitor DPI aware, 该方式是告诉系统, 请永远不要对我进行DWM虚拟化,我会自己针对不同的Monitor的DPi缩放比率进行缩放。
DPI Unaware(DPI未知)
1. 始终以96DPI显示,运行状态DPI改变不会模糊,DPI改变重新运行模糊
System DPI Awareness(系统DPI意识)
1.运行状态,DPI改变模糊,重新运行不会模糊且以当前新DPI显示
Per-Monitor and Per-Monitor (V2) DPI Awareness(每个监视器和每个监视器(V2)DPI意识)
1.DPI改变始终以最初运行DPI显示,重新运行不会模糊且以当前新DPI显示
二、清单文件解析
1、MFCApplication2_unaware_1.manifest:
无DPI

本文详细介绍了Windows上三种DPI awareness模式:Unaware、System DPI-aware和Per-Monitor DPI-aware,通过清单文件实例演示了如何在MFC应用中设置这些特性,确保跨设备的高分辨率支持和清晰度一致性。
最低0.47元/天 解锁文章
4275

被折叠的 条评论
为什么被折叠?



