OVH Cloud OVH Cloud

Icône main macro

4 réponses
Avatar
Didier NOVARIN
Bonjour,
Je souhaite récupérer l'icône de la min toute simple, de VBA. Or, dans le
dossier "Cursors", je ne trouve pas cette main avec l'index levé.
Je vous remercie
Didier

4 réponses

Avatar
Jacques93
Bonjour Didier NOVARIN,

L'icône en forme de main n'est pas disponible dans les curseurs par
défaut de VBA. Tu peux, soit en télécharger une, par exemple ici :

<http://www.chez.com/fpicalausa/perso/divers/hand.cur>

puis dans dans le code du userform, pour un label par exemple :

Private Sub UserForm_Initialize()
With Me.Label1
.MousePointer = fmMousePointerCustom
.MouseIcon = LoadPicture(Environ("Windir") & "CursorsHand.cur")
End With
End Sub

soit utiliser le curseur des ressources de user32.dll :

Private Const IDC_HAND As Long = 32649
Private Declare Function SetCursor Lib "user32" _
(ByVal hCursor As Long) As Long
Private Declare Function LoadCursor Lib "user32" _
Alias "LoadCursorA" (ByVal hInstance As Long, _
ByVal lpCursorName As Long) As Long

Private Sub Label1_MouseMove(ByVal Button As Integer, _
ByVal Shift As Integer, _
ByVal X As Single, _
ByVal Y As Single)
Dim hCursor As Long

hCursor = LoadCursor(0, IDC_HAND)
If hCursor > 0 Then SetCursor hCursor
End Sub


Bonjour,
Je souhaite récupérer l'icône de la min toute simple, de VBA. Or, dans le
dossier "Cursors", je ne trouve pas cette main avec l'index levé.
Je vous remercie
Didier





--
Cordialement,

Jacques.

Avatar
Didier NOVARIN
Bonjour Jacques93
C'est parfait un très grand merci
Une petite dernière ;-)
As-tu un exemple d'icône animée ?
Bonne journée
Didier


"Jacques93" a écrit dans le message de news:
O%
Bonjour Didier NOVARIN,

L'icône en forme de main n'est pas disponible dans les curseurs par défaut
de VBA. Tu peux, soit en télécharger une, par exemple ici :

<http://www.chez.com/fpicalausa/perso/divers/hand.cur>

puis dans dans le code du userform, pour un label par exemple :

Private Sub UserForm_Initialize()
With Me.Label1
.MousePointer = fmMousePointerCustom
.MouseIcon = LoadPicture(Environ("Windir") & "CursorsHand.cur")
End With
End Sub

soit utiliser le curseur des ressources de user32.dll :

Private Const IDC_HAND As Long = 32649
Private Declare Function SetCursor Lib "user32" _
(ByVal hCursor As Long) As Long
Private Declare Function LoadCursor Lib "user32" _
Alias "LoadCursorA" (ByVal hInstance As Long, _
ByVal lpCursorName As Long) As Long

Private Sub Label1_MouseMove(ByVal Button As Integer, _
ByVal Shift As Integer, _
ByVal X As Single, _
ByVal Y As Single)
Dim hCursor As Long

hCursor = LoadCursor(0, IDC_HAND)
If hCursor > 0 Then SetCursor hCursor
End Sub


Bonjour,
Je souhaite récupérer l'icône de la min toute simple, de VBA. Or, dans le
dossier "Cursors", je ne trouve pas cette main avec l'index levé.
Je vous remercie
Didier





--
Cordialement,

Jacques.



Avatar
Jacques93
Bonjour Didier NOVARIN,

La propriété MouseIcon ne gère pas les curseurs animés (.ani), l'API
LoadCursor non plus. Mais on peut utiliser LoadCursorFromFile. Un
exemple ici qui sauvegarde et change le curseur système :

http://www.devx.com/vb2themax/Tip/18314

que l'on peut adapter aux contrôles d'un UserForm :

Private Declare Function LoadCursorFromFile Lib "user32" Alias _
"LoadCursorFromFileA" (ByVal lpFileName As String) As Long

Private Declare Function SetCursor Lib "user32" _
(ByVal hCursor As Long) As Long

Private Sub Label3_MouseMove(ByVal Button As Integer, _
ByVal Shift As Integer, _
ByVal X As Single, _
ByVal Y As Single)
Dim hCursor As Long

hCursor = LoadCursorFromFile _
(Environ("Windir") & "Cursorsdrum.ani")
If hCursor > 0 Then SetCursor hCursor
End Sub

Bonjour Jacques93
C'est parfait un très grand merci
Une petite dernière ;-)
As-tu un exemple d'icône animée ?
Bonne journée
Didier



--
Cordialement,

Jacques.

Avatar
Didier NOVARIN
OK
Merci beaucoup
Très bonne soirée
Didier

"Jacques93" a écrit dans le message de news:
%
Bonjour Didier NOVARIN,

La propriété MouseIcon ne gère pas les curseurs animés (.ani), l'API
LoadCursor non plus. Mais on peut utiliser LoadCursorFromFile. Un exemple
ici qui sauvegarde et change le curseur système :

http://www.devx.com/vb2themax/Tip/18314

que l'on peut adapter aux contrôles d'un UserForm :

Private Declare Function LoadCursorFromFile Lib "user32" Alias _
"LoadCursorFromFileA" (ByVal lpFileName As String) As Long

Private Declare Function SetCursor Lib "user32" _
(ByVal hCursor As Long) As Long

Private Sub Label3_MouseMove(ByVal Button As Integer, _
ByVal Shift As Integer, _
ByVal X As Single, _
ByVal Y As Single)
Dim hCursor As Long

hCursor = LoadCursorFromFile _
(Environ("Windir") & "Cursorsdrum.ani")
If hCursor > 0 Then SetCursor hCursor
End Sub

Bonjour Jacques93
C'est parfait un très grand merci
Une petite dernière ;-)
As-tu un exemple d'icône animée ?
Bonne journée
Didier



--
Cordialement,

Jacques.