HOWTO在高DPI监视器上获得正常大小的光标?

时间:2017-11-29 07:44:44

标签: winapi cursor dpi hdpi

在我尝试获取光标时连接了高DPI监视器的计算机上(虽然GetIconInfo或GetIconInfoEx)我得到的HBITMAP是正常大小的3倍。

有没有办法让光标正常大小,以便我不必自己调整大小?

当我调整自己的大小时,我会收到文物

由于它被标记为重复问题(Load cursor with certain resolution),让我解释一下为什么不是:

首先,我没有加载任何光标。我正在使用系统的默认设置。此外,当我向系统查询光标大小时,无论光标是在hi-DPI还是普通DPI监视器上,我总是得到64个像素,相同的值。无论我从控制面板显示器的缩放系数到100%还是更高,我都得到相同的值。无论我是否有小,中或大光标(从控制面板鼠标轻松访问),我得到的值也相同

1 个答案:

答案 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