Page 1 sur 1
Constantes pour la souris
Publié : jeu. 25/avr./2013 12:17
par Micoute
Petit programme trouvé sue le forum allemand, traduit par mes soins.
Code : Tout sélectionner
Enumeration
#My_Event_LeftClick_Down = #PB_Event_FirstCustomValue
#My_Event_RightClick_Down
#My_Event_MiddleClick_Down
#My_Event_MiddleClick_Up
EndEnumeration
Procedure wc (hWnd, uMsg, wParam, lParam)
Select uMsg
Case #WM_LBUTTONDOWN
PostEvent(#My_Event_LeftClick_Down)
Case #WM_RBUTTONDOWN
PostEvent(#My_Event_RightClick_Down)
Case #WM_MBUTTONDOWN
PostEvent(#My_Event_MiddleClick_Down)
Case #WM_MBUTTONUP
PostEvent(#My_Event_MiddleClick_Up)
EndSelect
ProcedureReturn #PB_ProcessPureBasicEvents
EndProcedure
If OpenWindow(0,0,0,200,200,"",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
SetWindowCallback(@wc())
Repeat
eventid = WaitWindowEvent()
Select eventid
Case #PB_Event_CloseWindow
Quitter=1
Case #My_Event_LeftClick_Down
Debug "Bouton gauche appuyé"
Case #PB_Event_LeftClick
Debug "Bouton gauche relâché"
Case #My_Event_RightClick_Down
Debug "Bouton droit appuyé"
Case #PB_Event_RightClick
Debug "Bouton droit relâché"
Case #My_Event_MiddleClick_Down
Debug "Bouton milieu appuyé"
Case #My_Event_MiddleClick_Up
Debug "Bouton milieu relâché"
EndSelect
Until Quitter
EndIf
Re: Constantes pour la souris
Publié : jeu. 25/avr./2013 14:52
par MLD
@ Micoute
#PB_Event_LeftClick à la place de #WM_LBUTTONUP, les autres ne changent pas et ça fonctionne très bien !
Non ce n'est pas la même chose.
#PB_EventType_LeftClick indique seulement que tu as appuyé sur le bouton gauche de la souris.
#WM_LBUTTONDOWN indique que tu as le doigt qui appuis sur le bouton gauche de la souris. Et
#WM_LBUTTONUP que tu a relaché le bouton.
Ceci est trés utile quand tu veux par exemple indiquer a un morceau de programme que tu fait glisser un curseur quelconque,et que tu arrêtes cette action.
Re: Constantes pour la souris
Publié : jeu. 25/avr./2013 16:12
par Micoute
MLD où as-tu vu que j'avais mis #PB_EventType_LeftClick ?
J'ai mis #PB_Event_LeftClick qui veut dire "Bouton gauche appuyé" !
Sans rancune !
Re: Constantes pour la souris
Publié : jeu. 25/avr./2013 17:33
par MLD
@ Micoute
Si tu te servais du débugger tu saurai de quoi je parle.
En aucun cas il ne dit que le bouton est enfoncé, mais simplement que le bouton a été enfoncé puis relaché.
#PB_EventType_LeftClick même fonction sur un gadget.
Code : Tout sélectionner
Repeat
Select WaitWindowEvent()
Case #PB_Event_LeftClick
Debug "toto" ;*******************************
Case #PB_Event_CloseWindow
Quit = #True
Case #PB_Event_Gadget
EndSelect
Until Quit
End
Se que l'on veut savoir c'est quand le bouton est enfoncé et le reste, et quand il est relevé.
Pour contourer le problème de PB j'ai ceci
Code : Tout sélectionner
HookMouse = SetWindowsHookEx_(#WH_MOUSE_LL, @MouseHook(), GetModuleHandle_(0), 0)
Procedure MouseHook(nCode, wParam, lParam)
If wParam = #WM_LBUTTONUP
sap.b = 1
ElseIf wParam = #WM_MOUSEMOVE Or wParam = #WM_LBUTTONDOWN
sap.b = 0
EndIf
ProcedureReturn CallNextHookEx_(0, nCode, wParam, lParam)
EndProcedure
Bonne soirée

Re: Constantes pour la souris
Publié : jeu. 25/avr./2013 18:20
par Micoute
Merci MLD, tu as sûrement raison, mais je ne suis pas aussi évolué que toi en programmation et je ne peux pas te démentir, pourtant j'aimerais être aussi à l'aise pour utiliser les APIs
Re: Constantes pour la souris
Publié : jeu. 25/avr./2013 21:59
par Backup
en meme temps tout est deja expliqué ici :
http://www.purebasic.fr/french/viewtopi ... =21&t=6664
TUTO NUMERO 5
c'que j'en dit ...
Re: Constantes pour la souris
Publié : ven. 26/avr./2013 9:11
par MLD
@ Micoute
Loing de moi l'idée de te donner une leçon de programmation, et sur ce forum certains sont bien plus fort que moi, notamment en imagerie et en téléphonie/Web.
Mais l'utilisation du débugger et l'observation du résultat, ammène souvent a la solution.
J'ai remarqué que tu observe trés peu ce qui se passe dans les variables. L'observation des variables avec le débugger t'aurais permis dans ton programme de carte de sécu de voir que les chiffres étaient tronqués.
Bonne journée
Michel
Re: Constantes pour la souris
Publié : ven. 26/avr./2013 9:14
par Micoute
Bonjour Dobro et MLD et merci beaucoup,
le problème n'est pas que le tuto date de 2004, mais plutôt que PB 5.11 ne reconnaît pas certaines constantes, alors il faut faire de la recherche, je dirais même du bricolage pour se faire comprendre du compilateur, mais en aucun cas je ne veux donner tort à personne, car ce qui compte c'est le résultat et pas qui a raison.
J'ai remarqué que tu observe trés peu ce qui se passe dans les variables. L'observation des variables avec le débugger t'aurais permis dans ton programme de carte de sécu de voir que les chiffres étaient tronqués.
C'est tout à fait vrai et la cause est que quand je programmais dans ma jeunesse, j'avais affaire à des ordinateurs 8 voire 16 bits et donc les types de variables étaient strings et byte, je ne me souviens même pas s'il y avait des float, mais la raison est surtout que je suis auto-dicdacte et que je n'ai pas pris les bonnes habitudes.
Re: Constantes pour la souris
Publié : ven. 26/avr./2013 13:09
par MLD
@ Micoute
mais la raison est surtout que je suis auto-dicdacte .
A mes yeux tu as d'autant plus de mérite.

Re: Constantes pour la souris
Publié : ven. 26/avr./2013 14:58
par Micoute
Bonjour MLD, mon très cher voisin de département,
A mes yeux tu as d'autant plus de mérite.
Ça reste à prouver, car quand on se fait soi-même comme on dit, on rame beaucoup plus, car on n'a pas tous les outils pour bien travailler et on cherche à réinventer la roue qui roule très bien comme ça et en plus on n'a pas les conseils judicieux de quelqu'un qui nous dirait "Fais d’abords un fichier de REM, ça te permettra d'articuler ton programme autour.", mais j'ai eu de la chance quand j'ai connu PureBasic par hasard, car je voulais une occupation pour passer ma retraite et donc j'ai trouvé énormément de codes écrits par Dobro et beaucoup d'autres qui sont hélas partis du forums et ça m'a beaucoup aidé, car les "Basic" sur C64 ou CPC 6128 n'ont vraiment rien à voir avec le PureBasic de Fred que j'adore (les deux !) et qui me fait progresser tous les jours un peu plus.