[Résolu] Curseur personnalisé

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Curseur personnalisé

Message par Ar-S »

Modification du code :

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


~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Curseur personnalisé

Message par falsam »

Mince tu ne fournis pas la "Fifille animée sur bouton et fenêtre" :mrgreen:
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
TazNormand
Messages : 1297
Inscription : ven. 27/oct./2006 12:19
Localisation : Calvados (14)

Re: Curseur personnalisé

Message par TazNormand »

J'ai la même chose avec ton code, et ce qui est "mararnt" c'est que je ne l'ai pas avec celui d'Ar-S

Pour la fifille, il y a le lien dans le source, Falsam : Fifille
Image
Image
Avatar de l’utilisateur
Micoute
Messages : 2584
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Re: Curseur personnalisé

Message par Micoute »

Bonjour et merci énormément à tous les trois, ça fonctionne très bien, mais j'ai un problème avec GetCurrentDirectory(), mais en le supprimant, ça fonctionne quand même !

En même temps, j'ai appris qu'il y avait bien d'autres curseurs que la flèche, la main ou la poutre, enfin les classiques, il y a aussi les curseurs d'ancrage comme le Nord-Sud ou le Eest-Ouest, etc...

Merci encore.
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Avatar de l’utilisateur
TazNormand
Messages : 1297
Inscription : ven. 27/oct./2006 12:19
Localisation : Calvados (14)

Re: [Résolu] Curseur personnalisé

Message par TazNormand »

Bon, j'ai trouvé mon problème de "clipping", grâce à Ar-S ; c'est à cause de l'appel de ma fonction dans la boucle avec le SetCursor_(). Il faut utiliser le SetClassLong_() pour définir le type de curseur suivant le contexte (écran, bouton, autre).
Image
Image
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Curseur personnalisé

Message par Ar-S »

Micoute a écrit :mais j'ai un problème avec GetCurrentDirectory(), mais en le supprimant, ça fonctionne quand même !
Si ta source est dans c:\PBcode\moncode.pb le GetCurrentDirectory() doit te renvoyer c:\PBcode\
Si ça ne marche pas c'est que tu dois pas créer l'exe de compilation dans le même dossier.
Dans l'IDE de PB vas dans le menu compilateur/Option du compilateur et dans l'onglet compiler/exécuter coche Créer l’exécutable temporaire dans le répertoire des sources.

ça doit venir de là ;)
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: [Résolu] Curseur personnalisé

Message par falsam »

En tout cas Micoute, merci d'avoir poser ce sujet qui nous permet de faire un tour d'horizon sur la customisation du pointeur de la souris :)
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: [Résolu] Curseur personnalisé

Message par Ar-S »

Tout à fait :D
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
Micoute
Messages : 2584
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Re: Curseur personnalisé

Message par Micoute »

Ar-S a écrit :Si ta source est dans c:\PBcode\moncode.pb le GetCurrentDirectory() doit te renvoyer c:\PBcode\
Si ça ne marche pas c'est que tu dois pas créer l'exe de compilation dans le même dossier.
Ma source est bien dans le même répertoire que le curseur que je veux charger, c'est bien à cause de ça que je n'ai pas compris, mais c'est surtout depuis que j'ai la version 5.30 que j'ai entre autres, ce genre de problème. Peut-être devrais-je ré-installer la version ?
falsam a écrit :En tout cas Micoute, merci d'avoir poster ce sujet qui nous permet de faire un tour d'horizon sur la customisation du pointeur de la souris
Si je peux être utile, si ça vous plaît, ça me plaît ! :D
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: [Résolu] Curseur personnalisé

Message par Ar-S »

Ah je ne peux pas te dire, je n'ai pas testé la 5.30, je reste sur la LTS. J'essayerai la 5.30 uniquement si j'en ai le besoin.
Installe autant de version de PB que tu le souhaites mais ne te cantonne pas aux beta, ça t'évitera ce genre de soucis.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Répondre