閲覧した後、私はC#を使って座標を与えることで、プログラム的にマウスの動きを制御するコードを持っています。私は同じことをしたいが、マウスポインタはドットイメージに置き換えてください。私はC#を使用してデフォルトの矢印の代わりにマウスポインタとして画像を使用するには?
事前のおかげ:)ここ
閲覧した後、私はC#を使って座標を与えることで、プログラム的にマウスの動きを制御するコードを持っています。私は同じことをしたいが、マウスポインタはドットイメージに置き換えてください。私はC#を使用してデフォルトの矢印の代わりにマウスポインタとして画像を使用するには?
事前のおかげ:)ここ
は、あなたがそれを行う方法を示してgreat tutorialです...ので、C#でどのような方法があれば私に知らせてください...それを取得することはできませんよ。
ハンスアンパッサンは私の注意に持って来られるよう、よりよいアプローチがあります。
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 Stack Overflow Postから取られ
this.Cursor = NativeMethods.LoadCustomCursor(@"c:\windows\cursors\aero_busy.ani");
幸運!
そのコードには厄介なハンドルリークがあります。回避策については、この回答を確認してください:http://stackoverflow.com/a/4306984/17034 –
@ HansPassant - あなたは正しいです。私はこの回答を取り下げるべきですか?あなたの*より多くの*正解を挙げたいとは思わない。その信用はあなたのものです。ありがとう。 –
本当の答えを書いてください。ただ一つのリンクだけではありません。 –
これがWindowsフォームかWPFかWebアプリケーションかどうかを指定する必要があります。 – kprobst