成都网站建设设计

将想法与焦点和您一起共享

如何自定义Winform应用程序的鼠标图片-创新互联

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

成都创新互联公司是一家专注于成都网站建设、做网站与策划设计,洞头网站建设哪家好?成都创新互联公司做网站,专注于网站建设十余年,网设计领域的专业建站公司;建站业务涵盖:洞头等地区。洞头做网站价格咨询:18980820575

首先,建立图片与鼠标的对应关系。

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;
  }
}

当前标题:如何自定义Winform应用程序的鼠标图片-创新互联
本文来源:http://chengdu.cdxwcx.cn/article/jjgge.html