Как использовать изображение в качестве указателя мыши вместо стрелки по умолчанию с помощью C #? - PullRequest
3 голосов
/ 29 января 2012

После просмотра у меня есть код для программного управления движениями мыши, давая координаты с помощью C #.Я хочу сделать то же самое, но указатель мыши должен быть заменен точечным изображением.Я не могу получить это ... поэтому, пожалуйста, дайте мне знать, если есть какой-либо способ в C # ...

Заранее спасибо:)

1 Ответ

2 голосов
/ 29 января 2012

Вот отличный учебник , который покажет вам, как это сделать.

ОБНОВЛЕНИЕ

Как Ханс Пассант обратил мое внимание, есть лучший подход.Вот его версия, взята из этого сообщения о переполнении стека :

using System;
using System.ComponentModel;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using System.Reflection;

static class NativeMethods {
    public static Cursor LoadCustomCursor(string path) {
        IntPtr hCurs = LoadCursorFromFile(path);
        if (hCurs == IntPtr.Zero) throw new Win32Exception();
        var curs = new Cursor(hCurs);
        // Note: force the cursor to own the handle so it gets released properly
        var fi = typeof(Cursor).GetField("ownHandle", BindingFlags.NonPublic | BindingFlags.Instance);
        fi.SetValue(curs, true);
        return curs;
    }
    [DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)]
    private static extern IntPtr LoadCursorFromFile(string path);
}

А вот пример использования:

this.Cursor = NativeMethods.LoadCustomCursor(@"c:\windows\cursors\aero_busy.ani");

Удачи !!

...