在.NET中实现彩色光标,动画光标和自定义光标

Test.cs

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

namespace ColorCursor
{
/// <summary>
/// 本例子的作用:
/// 在.NET中实现彩色光标,动画光标和自定义光标。
/// </summary>
public class Form1 : System.Windows.Forms.Form
{
[DllImport(
"user32.dll")]
public static extern IntPtr LoadCursorFromFile( string fileName );

[DllImport(
"user32.dll")]
public static extern IntPtr SetCursor( IntPtr cursorHandle );

[DllImport(
"user32.dll")]
public static extern uint DestroyCursor( IntPtr cursorHandle );


[STAThread]
static void Main()
{
Application.Run(
new Form1());
}

public Form1()
{
this.Text = "";
Cursor myCursor
= new Cursor(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,
new object [] { colorCursorHandle } );
this.Cursor = myCursor;
}
}
}

  

posted @ 2011-08-04 12:56  slcands  Views(157)  Comments(0Edit  收藏  举报