我正在使用以这种方式加载的自定义光标:
Bitmap bit = new Bitmap(path);
cur = new Cursor(bit.GetHicon());
Cursor.current = cur;
我的位图是 44x58 png,鼠标热点不是我想要的位置。我寻找了一个属性来更改鼠标热点,但我发现的唯一一个是只读的(cur.Hotspot
)。我需要做什么来改变它的坐标?
谢谢
在 Visual Studio 中,在图像编辑器中打开光标文件或资源,然后从工具栏中选择热点工具。然后单击新热点并保存文件。AFAIK 无法通过 .NET API 设置热点,但有通过 WIN32 API 的选项,如其他评论中的链接所示。
最后,我只是决定隐藏鼠标光标并在热点坐标处绘制位图。建议的解决方案太复杂了。
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) 坐标处的位图绘制为最后一个绘图元素。