如何自定义Winform应用程序的鼠标图片?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

首先,建立图片与鼠标的对应关系。
class MouseStyle
{
[DllImport("user32.dll")]
public static extern IntPtr SetCursor(IntPtr cursorHandle);
static MouseStyle()
{
InitMouseStyle();
}
private static void InitMouseStyle()
{
if (Hand == null)
{
Hand = SetCursor("Image//Hand.png");
}
if (Arrow == null)
{
Arrow = SetCursor("Image//Arrow.png");
}
}
///
/// 鼠标手型样式
///
public static Cursor Hand = null;
///
/// 鼠标指针样式
///
public static Cursor Arrow = null;
///
/// 设置鼠标样式
///
/// 自定义的鼠标样式文件
/// 鼠标样式
private static Cursor SetCursor(string fileName)
{
//文件的绝对路径,在debug下
var path = System.IO.Path.GetFullPath(fileName) ;
//画图
Bitmap bit = (Bitmap)Bitmap.FromFile(path, true);
Bitmap myNewCursor = new Bitmap(bit.Width, bit.Height);
Graphics g = Graphics.FromImage(myNewCursor);
g.Clear(Color.FromArgb(0, 0, 0, 0));
//箭头和手型有点不一样
if (System.IO.Path.GetFileName(fileName).Equals("Hand.png"))
{
g.DrawImage(bit, bit.Width / 2 - 15, bit.Height / 2, bit.Width / 2, bit.Height / 2);
}
else
{
g.DrawImage(bit, bit.Width / 2 - 15, bit.Height / 2, bit.Width / 2, bit.Height / 2);
}
Cursor cursor;
//获取图片的句柄
try
{
cursor = new Cursor(myNewCursor.GetHicon());
}
catch
{
cursor = new Cursor(Icon.FromHandle(myNewCursor.GetHicon()).Handle);
}
//释放资源
g.Dispose();
return cursor;
}
}