VB 简易教程
您的位置
 
DELPHI语言教程
其它语言
编程技巧
 

让VB6.0支持动画光标



  在VB6.0中,鼠标指针通常是由窗体或其它控件的MouseIcon属性来设置,但遗憾的是,MouseIcon属性不支持彩色光标(*.cur)和动画光标(*.ani)。因此,要想在程序中使用上述光标,就不得不借助Windows API函数SetClassLong,该函数的功能是设置和修改窗体类中某些属性的值,并返回该属性原来的值。

  关键函数的介绍:

  SetClassLong hwnd,nIndex,dwNewLong

  其中,hwnd代表要设置光标的窗体或控件的句柄;nIndex表示设置光标,在这里设为-12;dwNewLong代表新的光标文件,可由另一API函数LoadCur-sorFromFile获得。

  设置光标后,在程序结束时,我们要将光标复原,因此要先将SetClassLong返回的原始光标存到变量中,再在窗体的Unload事件中将其还原。

  程序清单如下:Option ExplicitPrivate Declare Function LoadCursorFromFile Lib "user32" Alias "LoadCursorFromFileA" (ByVal lpFileName As String) As LongPrivate Declare Function SetClassLong Lib "user32" Alias "SetClassLongA" (ByVal hwnd As Long,ByVal nIndex As Long,ByVal dwNewLong As Long) As Long'以上API函数声明,必须在同一行中结束Dim NewCur As LongDim OldCur As LongPrivate Sub Form_Load()NewCur=LoadCursorFromFile("C:\WINDOWS\CURSORS\GLOBE.ANI")'上面*.ANI动画光标的路径可自己设定OldCur=SetClassLong(hwnd,-12,NewCur)End SubPrivate Sub Form_Unload(Cancel As Integer)SetClassLong hwnd,-12,OldCurEnd Sub

  以上程序在简体中文Windows98、VB6.0中调试通过。