下面是完整的例子,可以通过命令行编译即可看到效果。
Test.csusingSystem;usingSystem.Drawing;usingSystem.Windows.Forms;usingSystem.Runtime.InteropServices;usingSystem.Reflection;namespaceColorCursor
{///<summary>///本例子的作用:///在.NET中实现彩色光标,动画光标和自定义光标。///</summary>publicclassForm1 : System.Windows.Forms.Form
{
[DllImport("user32.dll")]publicstaticexternIntPtr LoadCursorFromFile(stringfileName );
[DllImport("user32.dll")]publicstaticexternIntPtr SetCursor( IntPtr cursorHandle );
[DllImport("user32.dll")]publicstaticexternuintDestroyCursor( IntPtr cursorHandle );
[STAThread]staticvoidMain()
{application.Run(newForm1());
}publicForm1()
{this.Text ="欢迎光临【孟宪会之精彩世界】:http://dotnet.aspx.cc/";
Cursor myCursor=newCursor(Cursor.Current.Handle);//dinosau2.ani为windows自带的光标:IntPtr colorCursorHandle = LoadCursorFromFile(@"C:/WINNT/Cursors/dinosau2.ani");
myCursor.GetType().InvokeMember("handle",BindingFlags.Public |BindingFlags.NonPublic| BindingFlags.Instance |BindingFlags.SetField,null,myCursor,newobject[] { colorCursorHandle } );this.Cursor =myCursor;
}
}
}