ExamineMouse()

Syntaxe

Resultat = ExamineMouse()
Description
Met à jour l'état de la souris.

Arguments

Aucun.

Valeur de retour

Renvoie une valeur non nulle si l'état de la souris a changé, zéro sinon.

Remarques

Cette commande doit être utilisée avant MouseDeltaX(), MouseDeltaY(), MouseX(), MouseY() ou MouseButton().

Le premier appel à ExamineMouse() capture la souris dans l'écran (surface accélérée) en cours, aussi bien en plein écran (Screen ) que dans un écran fenêtré (WindowedScreen).

La souris est à nouveau disponible pour l’ensemble du système après avoir appelé ReleaseMouse(#True) ou après la fin de ce programme.

En mode plein écran, la commande FlipBuffers() doit être appelée dans la boucle d'événements pour gérer correctement tous les événements.

Exemple

  ; Initialisation du monde 2D
  InitSprite()
  InitMouse()

  ; Ouverture de la fenêtre
  OpenWindow(0,0,0,800,600,"Souris - Cliquer et utiliser la molette...",#PB_Window_ScreenCentered|#PB_Window_SystemMenu)
  OpenWindowedScreen(WindowID(0),0,0,800,600,1,0,0)

  ;Création du curseur de la souris
  LoadSprite(0, #PB_Compiler_Home + "examples/sources/Data/PureBasic.bmp")   ; Load nice small Logo

  ; Déplacement de la souris
  MouseLocate(300,200)

  ; Gestion de la fenêtre et de l'écran
  Repeat
    Repeat      ; Gestion de la fenêtre
      Event  = WindowEvent() 
      Select Event 
        Case #PB_Event_CloseWindow 
        End  
      EndSelect 
    Until Event = 0
  
  ExamineMouse() ; Etat de la souris
  x = MouseX()   ; Position en x de la souris                     
  y = MouseY()   ; Position en y de la souris
  
  ; Affichage du curseur
  DisplaySprite(0, x-SpriteWidth(0)/2, y-SpriteHeight(0)/2)
  
  ; Molette de la souris = Rotation du curseur
  tiks = MouseWheel()
  RotateSprite(0, tiks, #PB_Relative)
  
  ; Affichage de l'état de la souris
  StartDrawing(ScreenOutput())
  DrawText(0,5, "X=" + Str(x) + "   Y=" + Str(y) + "  DeltaX " + Str(MouseDeltaX()) + "  DeltaY= " + Str(MouseDeltaY())) 
  If MouseButton(#PB_MouseButton_Left) <> 0
    DrawText(0,30, "Bouton Gauche", RGB(255,0,0),RGB(255,255,0))
  Else
    DrawText(0,30, "Bouton Gauche", RGB(255,255,255))
  EndIf
  If MouseButton(#PB_MouseButton_Middle) <> 0
    DrawText(150,30, "Bouton Central", RGB(255,0,0),RGB(255,255,0))
  Else
    DrawText(150,30, "Bouton Central", RGB(255,255,255))
  EndIf
  If MouseButton(#PB_MouseButton_Right) <> 0  
    DrawText(300,30, "Bouton Droit", RGB(255,0,0),RGB(255,255,0))
  Else
    DrawText(300,30, "Bouton Droit", RGB(255,255,255))
  EndIf  
  If tiks <> 0
    DrawText(450,30, "Molette", RGB(255,0,0),RGB(255,255,0))
  Else
    DrawText(450,30, "Molette", RGB(255,255,255))
  EndIf
  DrawText(0,60,".: Libérer la souris: Clic sur bouton gauche et droit :.")
  StopDrawing()
  
  ; Si clic sur bouton gauche ET droit alors la souris est libérée de l'écran courant
  If MouseButton(#PB_MouseButton_Left)  And MouseButton(#PB_MouseButton_Right) 
    ReleaseMouse(1)
    oui=6
    quitter=MessageRequester("Info !", "Voulez-vous quitter le programme ?",#PB_MessageRequester_YesNo)
    If quitter=oui
      End
    EndIf  
  EndIf
  
  FlipBuffers()
  ClearScreen(RGB(0,0,0)) 
  
  ForEver
  End

Voir aussi

InitMouse(), MouseDeltaX(), MouseDeltaY(), MouseX(), MouseY(), MouseButton()

OS Supportés

Tous

Mouse Index - InitMouse() ->