Chargement de curseur systeme ET externe animé
Tout marche au poil
Code : Tout sélectionner
; Changement de curseur Par Ar-S - PB 5.22 LTS
; basé sur un code de Froggerprogger
; Initialisation des données
Declare ChangeCursor(IdGadgetFenetre, IDcurseur=0)
Global.b clic
Clic = 0
; On charge les curseurs
C_Fleche = LoadCursor_(0, #IDC_ARROW) ; Fichier curseur système
C_Main = LoadCursor_(0, #IDC_HAND) ; Fichier curseur système
C_Aide = LoadCursor_(0, #IDC_HELP) ; Fichier curseur système
C_Carret = LoadCursor_(0, #IDC_IBEAM) ; Fichier curseur système
C_Croix = LoadCursor_(0, #IDC_CROSS) ; Fichier curseur système
C_Non = LoadCursor_(0, #IDC_NO) ; Fichier curseur système
; Fichier animé curseur externe => http://www.cursors-4u.com/cursor/2012/01/01/nico-robin-one-piece.html
; Path à modifier selon votre convenance
C_fifille = LoadCursorFromFile_(GetCurrentDirectory()+ "ani1161.ani")
; Ouverture de la fenêtre
hWnd = OpenWindow(1, 10, 10, 400, 200, "", #PB_Window_MinimizeGadget | #PB_Window_ScreenCentered)
Bouton1 = ButtonGadget(1, 210, 10, 100, 25, "Clic moi dessus")
; boucle
Repeat
Event = WaitWindowEvent(2)
Eg = EventGadget()
Select Event
Case #PB_Event_Gadget
Select Eg
Case 1 ; (le bouton)
Clic + 1
If Clic = 6
Clic = 0
EndIf
Select Clic
Case 1
ChangeCursor(hWnd, C_Croix)
ChangeCursor(Bouton1, C_Croix)
Debug "Croix sur bouton et fenêtre"
Case 2
ChangeCursor(hWnd, C_Aide)
Debug "Aide sur fenêtre"
Case 3
ChangeCursor(hWnd, C_Non)
Debug "Fleche Interdit sur fenêtre"
Case 4
ChangeCursor(Bouton1, C_Carret)
Debug "Carret sur bouton"
Case 5
ChangeCursor(Bouton1, C_fifille)
ChangeCursor(hWnd, C_fifille)
Debug "Fifille animée sur bouton et fenêtre"
Default
ChangeCursor(Bouton1, C_Fleche)
ChangeCursor(hWnd, C_Fleche)
Debug "Fleche sur bouton et fenêtre"
EndSelect
EndSelect
EndSelect
Until Event = #PB_Event_CloseWindow
; On décharge les curseurs
DestroyCursor_(C_Fleche)
DestroyCursor_(C_Main)
DestroyCursor_(C_Aide)
DestroyCursor_(C_Carret)
DestroyCursor_(C_Croix)
DestroyCursor_(C_Non)
DestroyCursor_(C_fifille)
End
; Procedure de changement du curseur
Procedure ChangeCursor(IdGadgetFenetre, IDcurseur=0)
; by Ar-S
If SetClassLong_(IdGadgetFenetre, #GCL_HCURSOR, IDcurseur)
ProcedureReturn 1
Else
ProcedureReturn 0
EndIf
EndProcedure