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