自定义鼠标样式的做法

调用外部鼠标样式,一般情况有两种,一种是调用鼠标文件cur、ani文件(cur是静态光标文件,ani是动画光标文件)。

做法,自定义光标文件嵌入dll和调用的方法。把鼠标样式cur文件添加入资源文件(这晓得吧,就是打开项目的property,点击资源,ctrl+v进去),记住在Resources里面选择cur文件,点击属性,修改生成操作为嵌入的资源。(这样做事为了控件封装时候一起封装,如果你是在from中用,那当我没说)

 

代码如下:

                    this.Cursor = new Cursor(GetType(), "Resources.hmove.cur");

 

记住GetType()是为了获得Resources在哪个项目下,如果报错,请检查名字是否正确?是否选定资源为嵌入的资源?

      另外一种是直接把png、jpg图片做为鼠标光标。

 

public void SetCursor(Bitmap cursor, Point hotPoint)

        {

            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, cursor.Height);

 

            IntPtr iptr = myNewCursor.GetHicon();

            this.FindForm().Cursor = new Cursor(iptr);

 

            g.Dispose();

            myNewCursor.Dispose();

            cursor.Dispose();

}

 

 

 

调用方法 Bitmap a=(Bitmap)Bitmap.FromFile("myCur.png");  

       SetCursor(a, new Point(0, 0));


第二种可以向第一种转换,使用ArtCursors鼠标编辑器,不会用也没关系,只需要导入png,导出cur就成。因为我验证了第二种在调用多次的时候,会出现“GDI+一般性错误”的报错提示。所以最好是调用一次储存Cursor变量是最好的解决办法。切忌反复调用~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值