Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

SetSystemCursor

4 réponses
Avatar
Joël
Bonjour a tous,
je souhaiterais savoir s'il est possible de modifier le curseur sur une form
par code
et uniquement sur la form car j'ai essayer SetSystemCursor(lecurseur,
OCR_NORMAL)
c'est interresant pour mettre un curseur animé pendant l'execution d'une
tache
mais sa ne s'aplique pas qu'a ma form mais a tous xp. ce qui n'est pas le
resultat attendu.
voici un bout de mon code:
' je récupère le curseur en cours d'abord pour pouvoir le restitier
curseurpresent = GetCursor()
iconcurseurpresent = CopyIcon(curseurpresent)
'
' j'applique le nouveau curseur (ex: drum.ani)
Call SetSystemCursor(lenouveaucurseur, OCR_NORMAL)
'
' pour le restituer tel qu'il était
Call SetSystemCursor(iconcurseurpresent, OCR_NORMAL)

4 réponses

Avatar
LE TROLL
Bonjour, si jamais j'ai compris ???

Screen.MousePointer = vbHourglass
Screen.MousePointer = VBdefault


--
Site de MES LOGICIELS
http://irolog.free.fr
Site éditeur de MES ROMANS édités
http://irolog.free.fr/romans
mon adresse EMail
http://irolog.free.fr/ecrire/index.htm
------------------------------------------------------------------------------------
"Joël" a écrit dans le message de news:
45e6db98$0$27395$
Bonjour a tous,
je souhaiterais savoir s'il est possible de modifier le curseur sur une
form par code
et uniquement sur la form car j'ai essayer SetSystemCursor(lecurseur,
OCR_NORMAL)
c'est interresant pour mettre un curseur animé pendant l'execution d'une
tache
mais sa ne s'aplique pas qu'a ma form mais a tous xp. ce qui n'est pas le
resultat attendu.
voici un bout de mon code:
' je récupère le curseur en cours d'abord pour pouvoir le restitier
curseurpresent = GetCursor()
iconcurseurpresent = CopyIcon(curseurpresent)
'
' j'applique le nouveau curseur (ex: drum.ani)
Call SetSystemCursor(lenouveaucurseur, OCR_NORMAL)
'
' pour le restituer tel qu'il était
Call SetSystemCursor(iconcurseurpresent, OCR_NORMAL)



Avatar
Joël
bonjour, merci pour la reponse mais avec Screen.MousePointer
on ne peut pas mettre un curseur animé...(format invalide)
ce que je souhaite pendant l'execution d'une tache.


"LE TROLL" <le a écrit dans le message de news:
Of5$
Bonjour, si jamais j'ai compris ???

Screen.MousePointer = vbHourglass
Screen.MousePointer = VBdefault


--
Site de MES LOGICIELS
http://irolog.free.fr
Site éditeur de MES ROMANS édités
http://irolog.free.fr/romans
mon adresse EMail
http://irolog.free.fr/ecrire/index.htm
------------------------------------------------------------------------------------
"Joël" a écrit dans le message de news:
45e6db98$0$27395$
Bonjour a tous,
je souhaiterais savoir s'il est possible de modifier le curseur sur une
form par code
et uniquement sur la form car j'ai essayer SetSystemCursor(lecurseur,
OCR_NORMAL)
c'est interresant pour mettre un curseur animé pendant l'execution d'une
tache
mais sa ne s'aplique pas qu'a ma form mais a tous xp. ce qui n'est pas le
resultat attendu.
voici un bout de mon code:
' je récupère le curseur en cours d'abord pour pouvoir le restitier
curseurpresent = GetCursor()
iconcurseurpresent = CopyIcon(curseurpresent)
'
' j'applique le nouveau curseur (ex: drum.ani)
Call SetSystemCursor(lenouveaucurseur, OCR_NORMAL)
'
' pour le restituer tel qu'il était
Call SetSystemCursor(iconcurseurpresent, OCR_NORMAL)







Avatar
Vincent Guichard
Joël a écrit :
bonjour, merci pour la reponse mais avec Screen.MousePointer
on ne peut pas mettre un curseur animé...(format invalide)
ce que je souhaite pendant l'execution d'une tache.



L'idée est de jouer avec les deux options, et de ne pas modifier le
curseur par défaut comme tu le fait, mais un autre curseur (vbHourGlass
semble ici une bonne idée).

Cf. code ci-dessous, pompé en grande partie sur l'API Guide, et
légèrement modifiés par mes soins:

Private Declare Function GetWindowsDirectory Lib "kernel32" Alias
"GetWindowsDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long)
As Long
Private Declare Function CopyIcon Lib "user32" (ByVal hIcon As Long) As Long
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 Declare Function SetSystemCursor Lib "user32" (ByVal hcur As
Long, ByVal id As Long) As Long
Private Declare Function GetCursor Lib "user32" () As Long
Private Const OCR_NORMAL As Long = 32512
Private Const OCR_WAIT As Long = 32514
Private currenthcurs As Long
Private tempcurs As Long
Private newhcurs As Long

Private Sub Command1_Click()
Screen.MousePointer = vbHourglass
Dim myDir As String
Dim lDir As Long
myDir = Space(255)
currenthcurs = GetCursor()
tempcurs = CopyIcon(currenthcurs)
myDir = "G:ProjetsGlobe.ico"
newhcurs = LoadCursorFromFile(myDir)
Call SetSystemCursor(newhcurs, OCR_WAIT)
End Sub
Private Sub Command2_Click()
Call SetSystemCursor(tempcurs, OCR_WAIT)
Screen.MousePointer = vbArrow
End Sub
Avatar
Joël
bonjour Vincent et merci pour ta reponse, sa fonctionne parfaitement.


"Vincent Guichard" a écrit dans le message de
news: 45e6f2f6$0$27374$
Joël a écrit :
bonjour, merci pour la reponse mais avec Screen.MousePointer
on ne peut pas mettre un curseur animé...(format invalide)
ce que je souhaite pendant l'execution d'une tache.



L'idée est de jouer avec les deux options, et de ne pas modifier le
curseur par défaut comme tu le fait, mais un autre curseur (vbHourGlass
semble ici une bonne idée).

Cf. code ci-dessous, pompé en grande partie sur l'API Guide, et légèrement
modifiés par mes soins:

Private Declare Function GetWindowsDirectory Lib "kernel32" Alias
"GetWindowsDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As
Long
Private Declare Function CopyIcon Lib "user32" (ByVal hIcon As Long) As
Long
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 Declare Function SetSystemCursor Lib "user32" (ByVal hcur As Long,
ByVal id As Long) As Long
Private Declare Function GetCursor Lib "user32" () As Long
Private Const OCR_NORMAL As Long = 32512
Private Const OCR_WAIT As Long = 32514
Private currenthcurs As Long
Private tempcurs As Long
Private newhcurs As Long

Private Sub Command1_Click()
Screen.MousePointer = vbHourglass
Dim myDir As String
Dim lDir As Long
myDir = Space(255)
currenthcurs = GetCursor()
tempcurs = CopyIcon(currenthcurs)
myDir = "G:ProjetsGlobe.ico"
newhcurs = LoadCursorFromFile(myDir)
Call SetSystemCursor(newhcurs, OCR_WAIT)
End Sub
Private Sub Command2_Click()
Call SetSystemCursor(tempcurs, OCR_WAIT)
Screen.MousePointer = vbArrow
End Sub