用SetSystemCursor这个api: Private Const OCR_WAIT = 32514Private Declare Function SetSystemCursor Lib "user32" (ByVal hcur As Long, ByVal id As Long) As Long使用时,先用loadcursor或LoadCursorFromFile或其它手段获得一个光标句柄 然后: SetSystemCursor 光标句柄,OCR_WAIT
楼上讲的和vb里不调用api做到的效果一样,你给的不完整,得加上 Public Declare Function DestroyCursor Lib "user32" (ByVal hCursor As Long) As Long 不然,程序运行以后,整个系统的鼠标都变了:( 我要的钩了,若,系统发给程序(窗体)或程序发给系统为忙的鼠标代号时取消这个消息 神啊9958
Private Const OCR_WAIT = 32514Private Declare Function SetSystemCursor Lib "user32" (ByVal hcur As Long, ByVal id As Long) As Long使用时,先用loadcursor或LoadCursorFromFile或其它手段获得一个光标句柄
然后:
SetSystemCursor 光标句柄,OCR_WAIT
Public Declare Function DestroyCursor Lib "user32" (ByVal hCursor As Long) As Long
不然,程序运行以后,整个系统的鼠标都变了:(
我要的钩了,若,系统发给程序(窗体)或程序发给系统为忙的鼠标代号时取消这个消息
神啊9958
设置鼠标光标是用SetCursor设置的,与消息机制无关
SetCursor设置的是线程鼠标光标,平常看到鼠标光标是当前线程的鼠标光标
每当控件接受到鼠标事件时,都会调用SetCursor设置一下线程鼠标光标,所以看起来光标是属于控件的
程序在任何时候都可以调用setcursor修改鼠标指针图案,与所处的实际工作无关也就是说:
若是程序想修改鼠标指针图案,随时可以调用setcursor。比如你将Form的MousePointer设为VbHourglass,看看效果如何
若是程序硬是不想修改鼠标指针图案,就是不在处理费时操作前修改光标。你会发现鼠标指针还是以前的正常状态的鼠标指针图案(因为此时该线程正在处理费时操作,自然没有设置光标。)只不过当Windows发现某个线程无法响应界面后,会自动接管该线程的消息处理,比如会将窗口的光标设为忙、将窗口中的内容设为一片空白……
这是Windows 2000才开始提供的功能,可以让用户将该窗口最小化或结束任务。