更改自定义光标的热点

时间:2012-07-17 15:56:28

标签: c# winforms cursor

我正在使用以这种方式加载的自定义光标:

Bitmap bit = new Bitmap(path);
cur = new Cursor(bit.GetHicon());
Cursor.current = cur;

我的位图是44x58 png,鼠标热点并不是我想要的位置。我找了一个属性来改变鼠标热点,但我发现的唯一一个是只读的(cur.Hotspot)。我需要做些什么来改变它的坐标?

由于

2 个答案:

答案 0 :(得分:0)

在Visual Studio中,在图像编辑器中打开光标文件或资源,然后从工具栏中选择“热点工具”。然后单击新热点并保存文件。 AFAIK没有办法通过.NET API设置热点,但是通过WIN32 API有一些选项,如其他人评论中的链接所示。

答案 1 :(得分:-1)

最后,我决定隐藏鼠标光标并在热点坐标处绘制位图。解决方案建议太复杂了。

cursor = new Bitmap(path);
MouseMove事件中的

ex = e.X - offx //the x offset of the hotspot
ex = e.X - offy //the y offset of the hotspot

然后在(ex,ey)坐标处绘制位图的最后一个绘图元素。