ReleaseMouse()
Syntaxe
ReleaseMouse(Etat)Description
Capture ou libère la souris pour rendre son usage possible dans le système d'exploitation.
Arguments
Etat #True : La souris est libérée de l'écran #False : La souris est capturée dans l'écran.
Valeur de retour
Aucune.
Remarques
On utilise typiquement cette fonction après avoir vérifié le résultat de la commande IsScreenActive().
Exemple
; Quelques variables
MargeG = 20
MargeH = 20
LargeurEcran = 440
HauteurEcran = 440
; Initialisation du monde 2D
InitSprite()
InitMouse()
; Ouverture de la fenêtre et de l'écran
OpenWindow(0,0,0,650,480,"Capture/Libération de la souris",#PB_Window_ScreenCentered|#PB_Window_SystemMenu)
ButtonGadget(1,500,440,120,24,"Cliquez !")
OpenWindowedScreen(WindowID(0),20,20,LargeurEcran,HauteurEcran,0,0,0)
; Gestion de la fenêtre et de l'écran
Repeat
Repeat ; Gestion de la fenêtre
Event = WindowEvent()
Select Event
Case #PB_Event_Gadget
If EventGadget() = 1 ; Si Clic sur le Bouton "Cliquez !"
MessageRequester("Attention","Bouton cliqué !")
EndIf
Case #PB_Event_CloseWindow ; Si fermeture de la fenêtre
End
EndSelect
; Affichage de la position de la souris dans la fenêtre
SetWindowTitle(0, "Capture/Libération de la souris X= " + Str(mx) + " Y= "+ Str(my))
Until Event = 0
; Gestion de la capture de la souris dans l'écran noir
If inScreen = #True ; Si la souris est dans l'écran noir...
If MouseX() > LargeurEcran-2 Or MouseY() > HauteurEcran-2 Or MouseX() < 1 Or MouseY() <1
ReleaseMouse(#True) ; ...et si elle s'approche des bords de l'écran alors on libère la souris
inScreen = #False
EndIf
Else
mx = WindowMouseX(0) ; Sinon, si la souris entre dans l'écran noir...
my = WindowMouseY(0)
If mx < LargeurEcran + MargeG And mx > MargeG And my > MargeH And my < MargeH + HauteurEcran
ReleaseMouse(#False) ; ... alors on capture la souris
MouseLocate(mx-MargeG,my-MargeH)
inScreen = #True
EndIf
EndIf
; Affichage de l'écran noir
ClearScreen(0)
StartDrawing(ScreenOutput())
DrawText(150,200,"Souris relachée")
DrawText(180,230,"X= ")
DrawText(180,260,"Y= ")
StopDrawing()
If inScreen ; Si la souris est dans l'écran noir...
ExamineMouse()
StartDrawing(ScreenOutput())
FrontColor(RGB(255,255,0))
DrawText(150,200,"Souris capturée" )
DrawText(180,230,"X= "+ Str(MouseX()))
DrawText(180,260,"Y= "+ Str(MouseY()))
DrawText(MouseX(), MouseY(), "["+Chr(164)+"]")
StopDrawing()
EndIf
FlipBuffers()
ForEver
Voir aussi
ExamineMouse(), IsScreenActive()
OS Supportés
Tous