winGorm程序如何修改光标
我在Form中用如下方法修改鼠标光标:
Icon ic=new Icon(@"..\..\cur.ico");
Cursor=new Cursor(ic.Handle);
当鼠标出了本窗口,光标变成原来默认的光标了,用什么方法可以在程序加载时修改系统光标,退出时还原
就象以前很多人写winspy++时,当点击窗口中图标时鼠标变成此图标,并开始HOOK,当在别的窗口释放时列举该窗口的所有子窗口
问题点数:100、回复次数:4Top
1 楼lovevsnet(编程一把手)回复于 2005-07-28 20:11:58 得分 90
你可以参考如下代码:
Icon ic=new Icon(@"..\..\cur.ico");
Cursor cs=new Cursor(ic.Handle);
if(cs!=null)
SetSystemCursor(cs.Handle,32512);//OCR_NORMAL=32512
Top
2 楼wmt85(深山老翁)回复于 2005-07-28 20:28:46 得分 10
using System.Runtime.InteropServices;
[DllImport("user32.dll", EntryPoint="LoadCursorFromFile")]
public static extern int LoadCursorFromFile(String FileName);
private void button1_Click(object sender, System.EventArgs e)
{
Cursor cursor=new Cursor(new IntPtr(LoadCursorFromFile(@"C:\WINDOWS\Cursors\3dgmove.cur")));
//Cursor cursor=new Cursor(@"C:\WINDOWS\Cursors\3dgmove.cur"); //不能直接用Cursor的这个构造函数。
this.Cursor=cursor;
}
Top
3 楼lovevsnet(编程一把手)回复于 2005-07-28 20:28:55 得分 0
忘了给你写恢复光标:
先定义一个光标对象,恢复时用
Cursor cr;
Cursor tc=Cursors.Default;
cr=new Cursor(tc.CopyHandle());
//-----------------------------------------------------------
SetSystemCursor(cr.Handle,32512);//恢复
搞定
Top
4 楼prochf(love bcb)回复于 2005-07-28 21:45:40 得分 0
to:wmt85(天涯在流浪)
你没看清楚我的问题,你的回答也只能在当前控件有效,如果离开当前窗口,鼠标光标是原来那个
lovevsnet(编程一把手) 的回答很不错,问题基本解决,谢了Top




