桌面开发之自定义光标样式

桌面开发之自定义光标样式

首先鼠标在移动到地图中绘图时,光标的显示状况将变化
解决C# winForm自定义鼠标样式的两种实现方法详解
需要注意的是,鼠标的点击位置是固定的,都在坐上角,则相应图片引导用户的末端应该是从右下到左上的类型为佳
该链接提供的代码已经足够实现功能,要注意使用的照片最好刚刚好切到光标的顶点,这样点击位置就不会偏移,也好调整,另外添加了一个缩放的参数用于调整缩放比例

/// <summary>
/// 设置光标图片
/// </summary>
/// <param name="cursor">光标图片</param>
/// <param name="hotPoint">指定光标点击点</param>
/// <param name="zoom">指定图片缩放指数,默认为0.1倍</param>
public void SetCursor(Bitmap cursor, Point hotPoint,float zoom=0.1f)
{
    int hotX = hotPoint.X;
    int hotY = hotPoint.Y;
    Bitmap myNewCursor = new Bitmap(cursor.Width * 2 - hotX, cursor.Height * 2 - hotY);
    Graphics g = Graphics.FromImage(myNewCursor);
    g.Clear(Color.FromArgb(0, 0, 0, 0));
    g.DrawImage(cursor, cursor.Width - hotX, cursor.Height - hotY, cursor.Width*zoom,
    cursor.Height*zoom);
    this.Cursor = new Cursor(myNewCursor.GetHicon());

    g.Dispose();
    myNewCursor.Dispose();
}

该函数在进入控件时运行前,应该保存未修改的光标状态,这样在离开控件时才能恢复回原状

public Cursor cr;//定义全局变量

cr = Cursor.Current;//保存当前的光标状态

this.Cursor = this.cr;//恢复当前光标状态
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值