Winforms 确定当前选定主题的光标大小

Winforms 确定当前选定主题的光标大小,winforms,.net-3.5,mouse-cursor,Winforms,.net 3.5,Mouse Cursor,我想显示一个自定义鼠标光标,其大小与用户的当前设置(在控制面板中)相匹配 执行Cursor.Current.Size总是返回32x32(因为我猜它们在技术上总是如此,但在视觉上不是这样),无论控制面板设置如何,都可以通过较小或较大的光标外观正确反映出来 那么如何计算大小呢?对于我所发现的,您必须获取光标的图标(可能使用一些win32 API),然后使用ICONINFO来查找掩码位图。之后,你可以检查图标的像素并计数,直到你找到透明的颜色,这样才能找到真正的大小 我在其他网站上看到了一些指向这个方

我想显示一个自定义鼠标光标,其大小与用户的当前设置(在控制面板中)相匹配

执行Cursor.Current.Size总是返回32x32(因为我猜它们在技术上总是如此,但在视觉上不是这样),无论控制面板设置如何,都可以通过较小或较大的光标外观正确反映出来


那么如何计算大小呢?

对于我所发现的,您必须获取光标的图标(可能使用一些win32 API),然后使用ICONINFO来查找掩码位图。之后,你可以检查图标的像素并计数,直到你找到透明的颜色,这样才能找到真正的大小

我在其他网站上看到了一些指向这个方向的答案,但我找不到一个完整的解决方案,只是到处都是碎片

这个stackoverflow问题对于光标使用的位图掩码有一个很好的答案,从这里您可以找到解决方案

这个问题很老了,我从2003年起在其他网站上看到过这个问题,所以如果你成功了,请把答案放在这里,很多人都会很高兴找到这个问题的答案