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

ham*_*zis 5 winapi cursor dpi hdpi

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

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

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

由于它被标记为重复的问题(加载光标具有一定的分辨率),让我解释为什么它不是:

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

小智 0

您没有说明正常大小是指什么,所以我假设它是硬件鼠标指针显示的光标大小(32\xc3\x9732 at 96\xc2\xa0DPI 100\xc2 \xa0% 比例)。

\n

返回的位图尺寸GetIconInfo(以及光标本身)受到控制面板中指定的 DPI 比例的影响,这可能取决于 Windows 版本,整个系统相同,也可能因显示器而异。此外,位图大小还受到应用程序是否标记为 DPI 感知的影响,否则 Windows 会缩放应用程序的所有内容。

\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
DPI 比例鼠标光标大小DPI 感知获取图标信息位图
100%32\xc3\x9732-32\xc3\x9732
150%48\xc3\x974872\xc3\x9772
150%48\xc3\x9748是的48\xc3\x9748
200%64\xc3\x9764128\xc3\x97128
200%64\xc3\x9764是的64\xc3\x9764
\n