Bonjour à tous.
J'ai une feuille Excel (2003 SP3) que je voudrais customiser. Je souhaite que lorsque le pointeur se trouve au dessus d'un contrôle donné, le curseur change. On peut faire ça simplement en définissant les propriétés de Mouseicon du contrôle mais comme c'est trop simple je voudrais que le curseur soit animé (.ani).
J'ai trouvé sur le Web des solutions auxquelles je ne comprend rien (je ne suis pas un pro, loin de là). Notamment une que je copie ci-dessous :
Private Declare Function SetClassLongPtr Lib "user32" Alias "SetClassLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal wNewWord As Long) As Long
Private Declare Function LoadCursorFromFile Lib "user32" Alias "LoadCursorFromFileA" (ByVal lpFileName As String) As Long
Private Declare Function DestroyCursor Lib "user32" (ByVal hCursor As Long) As Long
Const GCW_HCURSOR = (-12)
Dim SysCursHandle As Long, Curs2Handle As Long
Private Sub Form_Load()
'Load a cursor from a file
Curs2Handle = LoadCursorFromFile("D:\Mes supers tests\Static 7.cur" )
'Set the button's cursor
SysCursHandle = SetClassLongPtr(Command1.hwnd, GCW_HCURSOR, Curs2Handle)
End Sub
Private Sub Form_Unload(Cancel As Integer)
DestroyCursor Curs2Handle
End Sub
D'après son auteur c'est très simple.
J'ai essayé de l'utiliser (je n'aime pas quand je ne comprend pas) mais ça ne fonctionne pas, j'ai une erreur "Objet requis" sur la ligne du SysCursHandle =...
Dans l'ensemble, le code me parait clair, on remplace le curseur par défaut par un curseur chargé à partir d'un fichier. Ce que je ne comprend pas dans ce code c'est la fonction SetClassLongPtr. A quoi sert elle et qu'est ce que c'est que Command1.hwnd.
Désolé pour ces questions bêtes mais si quelqu'un peut soit m'expliquer comment c'est censé fonctionner ou me donner une autre façon de faire je me coucherai plus intelligent ce soir (comme touts les soirs, en général).
Merci à tous
Th
J'ai une feuille Excel (2003 SP3) que je voudrais customiser. Je souhaite que lorsque le pointeur se trouve au dessus d'un contrôle donné, le curseur change. On peut faire ça simplement en définissant les propriétés de Mouseicon du contrôle mais comme c'est trop simple je voudrais que le curseur soit animé (.ani).
J'ai trouvé sur le Web des solutions auxquelles je ne comprend rien (je ne suis pas un pro, loin de là). Notamment une que je copie ci-dessous :
Private Declare Function SetClassLongPtr Lib "user32" Alias "SetClassLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal wNewWord As Long) As Long
Private Declare Function LoadCursorFromFile Lib "user32" Alias "LoadCursorFromFileA" (ByVal lpFileName As String) As Long
Private Declare Function DestroyCursor Lib "user32" (ByVal hCursor As Long) As Long
Const GCW_HCURSOR = (-12)
Dim SysCursHandle As Long, Curs2Handle As Long
Private Sub Form_Load()
'Load a cursor from a file
Curs2Handle = LoadCursorFromFile("D:\Mes supers tests\Static 7.cur" )
'Set the button's cursor
SysCursHandle = SetClassLongPtr(Command1.hwnd, GCW_HCURSOR, Curs2Handle)
End Sub
Private Sub Form_Unload(Cancel As Integer)
DestroyCursor Curs2Handle
End Sub
D'après son auteur c'est très simple.
J'ai essayé de l'utiliser (je n'aime pas quand je ne comprend pas) mais ça ne fonctionne pas, j'ai une erreur "Objet requis" sur la ligne du SysCursHandle =...
Dans l'ensemble, le code me parait clair, on remplace le curseur par défaut par un curseur chargé à partir d'un fichier. Ce que je ne comprend pas dans ce code c'est la fonction SetClassLongPtr. A quoi sert elle et qu'est ce que c'est que Command1.hwnd.
Désolé pour ces questions bêtes mais si quelqu'un peut soit m'expliquer comment c'est censé fonctionner ou me donner une autre façon de faire je me coucherai plus intelligent ce soir (comme touts les soirs, en général).
Merci à tous
Th