我有一个问题,我正在为一个不支持dpi的进程进行编码,直到bug修复落地。
所以现在我需要做一个变通。我的想法是这样的:计算放大因子,并将元素的宽度/高度按比例缩小。
所以现在我正在画一幅画布,它是第二台显示器的全宽和全高
1920 x 1080
(宽x高)。但从视觉上看(通过截图后的photoshop测量)
2880 x 1620
这是1.5的放大因子(2880除以1920或1620除以1080)。
我尝试使用以下方法获取dpi
GetDeviceCaps
和
EnumDisplaysettings
但它们都返回了主监视器的状态(注意:
EnumDisplaySettings
套
dmLogPixels
如果我这样做,我认为DPI为0
枚举显示设置
常量为
ENUM_REGISTRY_SETTINGS
所以我不得不使用
ENUM_CURRENT_SETTINGS
).
我发现唯一不同的返回方法是
GetDpiForMonitor
具有
MONITOR_DPI_TYPE
常数
MDT_Angular_DPI
或
MDT_Raw_DPI
,如果我使用
MDT_Effective_DPI
它给出了主监视器的结果。
这是我跑步的结果
获取监视器数据
:
没有一个二次值除以一次值,得到的比例因子是1.5。有没有办法得到这个比例因子?
谢谢