Page 1 sur 1

trouver l'etat de la souris dans un OpenWindow

Publié : jeu. 08/sept./2005 15:39
par cha0s
J'ai un petit problem avec la souris ,je cherche a obtenir l'etat de la souris mais je ne sait pas comment faire .Je pense que il s'agit de recuperer letat comme evenement de window mais je voit pas comment .

Publié : jeu. 08/sept./2005 17:56
par filperj
Tu as 4 évènements intéressants pour ça: #wm_lbuttondown , #wm_lbuttonup , #wm_rbuttondown , #wm_rbuttonup.
A toi de les récupérer et de t'en servir pour actualiser l'état de la souris...

Petit exemple vite fait:

Code : Tout sélectionner



Procedure makepoint(*p.point,packedxy.l)
   *p\x = packedxy & $ffff
   *p\y = (packedxy >> 16) & $ffff
EndProcedure

DefType.point coordsouris

If OpenWindow(0,0,0,300,300,#PB_Window_SystemMenu|#PB_Window_ScreenCentered,"Test Souris")
   Repeat
      Select WaitWindowEvent()
         Case #PB_Event_CloseWindow : End
         Case #WM_LBUTTONDOWN
            makepoint(@coordsouris,EventlParam())
            Debug "________"
            Debug "Bouton gauche enfoncé"
            Debug "x = " +Str(coordsouris\x)
            Debug "y = " +Str(coordsouris\y)
         Case #WM_LBUTTONUP
            makepoint(@coordsouris,EventlParam())
            Debug "________"
            Debug "Bouton gauche relevé"
            Debug "x = " +Str(coordsouris\x)
            Debug "y = " +Str(coordsouris\y)
         Case #WM_RBUTTONDOWN
            makepoint(@coordsouris,EventlParam())
            Debug "________"
            Debug "Bouton droit enfoncé"
            Debug "x = " +Str(coordsouris\x)
            Debug "y = " +Str(coordsouris\y)
         Case #WM_RBUTTONUP
            makepoint(@coordsouris,EventlParam())
            Debug "________"
            Debug "Bouton droit relevé"
            Debug "x = " +Str(coordsouris\x)
            Debug "y = " +Str(coordsouris\y)
      EndSelect
   ForEver
EndIf

Publié : jeu. 08/sept./2005 23:26
par cha0s
merci c'est exactement ce que je cherchais