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

<- MouseY() - Mouse Index