使用图片定义鼠标样式
来源:互联网 发布:腾讯php面试题 编辑:程序博客网 时间:2024/05/06 04:45
/// <summary> /// 设置鼠标形状 /// </summary> class CursorGenerator { [DllImport("user32.dll")] [return: MarshalAs(UnmanagedType.Bool)] public static extern bool GetIconInfo(IntPtr hIcon, ref IconInfo pIconInfo); [DllImport("user32.dll")] public static extern IntPtr CreateIconIndirect(ref IconInfo icon); /// <summary> /// 创建鼠标形状 /// </summary> /// <param name="bmp"></param> /// <param name="xHotSpot">热点X</param> /// <param name="yHotSpot">热点Y</param> /// <returns></returns> public static Cursor CreateCursor(Bitmap bmp, int xHotSpot, int yHotSpot) { IntPtr ptr = bmp.GetHicon(); IconInfo tmp = new IconInfo(); GetIconInfo(ptr, ref tmp); tmp.xHotspot = 0; tmp.yHotspot = 0; tmp.fIcon = false; ptr = CreateIconIndirect(ref tmp); return new Cursor(ptr); } public struct IconInfo { public bool fIcon; public int xHotspot; public int yHotspot; public IntPtr hbmMask; public IntPtr hbmColor; } }