在我尝试获取光标时连接了高DPI监视器的计算机上(虽然GetIconInfo或GetIconInfoEx)我得到的HBITMAP是正常大小的3倍。
有没有办法让光标正常大小,以便我不必自己调整大小?
当我调整自己的大小时,我会收到文物
由于它被标记为重复问题(Load cursor with certain resolution),让我解释一下为什么不是:
首先,我没有加载任何光标。我正在使用系统的默认设置。此外,当我向系统查询光标大小时,无论光标是在hi-DPI还是普通DPI监视器上,我总是得到64个像素,相同的值。无论我从控制面板显示器的缩放系数到100%还是更高,我都得到相同的值。无论我是否有小,中或大光标(从控制面板鼠标轻松访问),我得到的值也相同
答案 0 :(得分:0)
您没有说明正常大小指的是什么,所以我假设硬件鼠标指针显示在光标大小(32×32,96 DPI 100 %规模)。
GetIconInfo
返回的位图尺寸(和光标本身)受控制面板中指定的 DPI 比例影响,这可能取决于整个系统的 Windows 版本相同,也可能因显示器而异。此外,位图大小还受您的 application is marked as DPI-aware 是否影响,否则 Windows 会为应用程序缩放所有内容。
DPI 比例 | 鼠标光标大小 | DPI 感知 | GetIconInfo 位图 |
---|---|---|---|
100% | 32×32 | - | 32×32 |
150% | 48×48 | 否 | 72×72 |
150% | 48×48 | 是 | 48×48 |
200% | 64×64 | 否 | 128×128 |
200% | 64×64 | 是 | 64×64 |