如何在.net中使用彩色光标
在.net提供的cursor中,使用Cursor的构造函数可以创建一个光标,如:
Cursor cur=new Cursor(“myCursor.cur”);
但是采用这种方式得到的光标不支持动画和彩色,网上有人提出可以使用图标文件来做彩色光标,如:
Cursor cur=new Cursor(“myCursor.ico”);
用这种方式虽然可以解决光标颜色问题,但是丢失了光标的另一个重要信息:热点。这种方式的后果是:所有光标的热点都在图标的中心。
在网上找到了一篇文章,讲述这个问题的。 http://www.dotnet247.com/247reference/msgs/47/239917.aspx
它的思路是:
使用win32的方法创建一个彩色光标的句柄:
IntPtr cursorHandle = LoadCursorFromFile(“myCursor.cur”);
构造一个Cursor对象:
Cursor myCursor = new Cursor(cursorHandle );
注意:在类中需要声明
[DllImport("user32.dll")]
public static extern IntPtr LoadCursorFromFile( string fileName );
Cursor cur=new Cursor(“myCursor.cur”);
但是采用这种方式得到的光标不支持动画和彩色,网上有人提出可以使用图标文件来做彩色光标,如:
Cursor cur=new Cursor(“myCursor.ico”);
用这种方式虽然可以解决光标颜色问题,但是丢失了光标的另一个重要信息:热点。这种方式的后果是:所有光标的热点都在图标的中心。
在网上找到了一篇文章,讲述这个问题的。 http://www.dotnet247.com/247reference/msgs/47/239917.aspx
它的思路是:
使用win32的方法创建一个彩色光标的句柄:
IntPtr cursorHandle = LoadCursorFromFile(“myCursor.cur”);
构造一个Cursor对象:
Cursor myCursor = new Cursor(cursorHandle );
注意:在类中需要声明
[DllImport("user32.dll")]
public static extern IntPtr LoadCursorFromFile( string fileName );