Feedback

C# - Custom Cursor

Veröffentlicht von am 9/8/2010
(1 Bewertungen)
Nieder mit der Sanduhr! Ermm oder dem Kringel ...

Mithilfe dieses Snippets lassen sich eigene Cursor (Bitmaps) einbinden.

Der Aufruf sieht dann etwa so aus:

Cursor = CursorTool.CreateCursor(BILD, 1, 1);

(BILD => Bitmap)

nicht vergessen später wieder zurück:
Cursor = Cursors.Default;
using System;
using System.Runtime.InteropServices;
using System.Windows.Forms;
using System.Drawing;

    public struct IconInfo
    {
        public bool fIcon;
        public int xHotspot;
        public int yHotspot;
        public IntPtr hbmMask;
        public IntPtr hbmColor;
    }

    public class CursorTool
    {
        [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);

        public static Cursor CreateCursor(Bitmap bmp, int xHotSpot, int yHotSpot)
        {
            IntPtr ptr = bmp.GetHicon();
            IconInfo tmp = new IconInfo();
            GetIconInfo(ptr, ref tmp);
            tmp.xHotspot = xHotSpot;
            tmp.yHotspot = yHotSpot;
            tmp.fIcon = false;
            ptr = CreateIconIndirect(ref tmp);
            return new Cursor(ptr);
        }
    }
Abgelegt unter Custom, Cursor, Bitmap.

Kommentare zum Snippet

 

Logge dich ein, um hier zu kommentieren!