PureBasic

ReleaseMouse()

Синтаксис

ReleaseMouse(State)

Описание


Захватывает или отпускает мышь, чтобы разрешить ее использование операционной системой. Эта функция обычно используется после проверки результата команды IsScreenActive().

Параметры

State
  #True  : Мышь отпущена.
  #False : Мышь захвачена.

Возвращаемое значение

Ничего.

Пример (фран.)

; Некоторые переменные
MargeG = 20
MargeH = 20
LargeurEcran = 440
HauteurEcran = 440

; Инициализация мира 2D
InitSprite()
InitMouse()

; Открытие окна и экрана
OpenWindow(0, 0, 0, 650, 480, "Захват / Освобождение мыши", #PB_Window_ScreenCentered|#PB_Window_SystemMenu)
ButtonGadget(1, 500, 440, 120, 24, "Нажмите !")
OpenWindowedScreen(WindowID(0), 20, 20, LargeurEcran, HauteurEcran, 0, 0, 0)

; Управление окнами и экранами
Repeat

    Repeat ; Управление окнами
        Event  = WindowEvent()
        Select Event
            Case #PB_Event_Gadget
                If EventGadget() = 1    ; Если нажать на кнопку "Нажми!"
                    MessageRequester("Внимание", "Кнопка нажата !")
                EndIf
            Case #PB_Event_CloseWindow ; Если закрыть окно
                End
        EndSelect

        ; Отображение положения мыши в окне
        SetWindowTitle(0, "Захват / Освобождение мыши X = " + Str(mx) + " Y= "+ Str(my))
    Until Event =  0

    ; Управление захватом мыши на черном экране
    If inScreen = #True      ; Если мышь находится на черном экране...
        If MouseX() > LargeurEcran-2 Or MouseY() > HauteurEcran-2 Or MouseX() < 1 Or MouseY() <1
            ReleaseMouse(#True)  ; ...и если он приближается к краям экрана, то мы отпускаем мышь
            inScreen = #False
        EndIf
    Else
        mx = WindowMouseX(0) ; В противном случае, если мышь входит в черный экран...
        my = WindowMouseY(0)
        If mx < LargeurEcran + MargeG And mx > MargeG And my > MargeH And my < MargeH + HauteurEcran
            ReleaseMouse(#False)    ; ...тогда мы ловим мышь
            MouseLocate(mx-MargeG, my-MargeH)
            inScreen = #True
        EndIf
    EndIf

    ; Черный экран
    ClearScreen(0)
    StartDrawing(ScreenOutput())
    DrawText(150, 200, "Мышь отпущена")
    DrawText(180, 230, "X= ")
    DrawText(180, 260, "Y= ")
    StopDrawing()
    If inScreen  ; Если мышь находится на черном экране...
        ExamineMouse()
        StartDrawing(ScreenOutput())
        FrontColor(RGB(255, 255, 0))
        DrawText(150, 200, "Захваченная мышь" )
        DrawText(180, 230, "X= "+ Str(MouseX()))
        DrawText(180, 260, "Y= "+ Str(MouseY()))
        DrawText(MouseX(), MouseY(), "["+Chr(164)+"]")
        StopDrawing()
    EndIf
    FlipBuffers()
ForEver

См. также

IsScreenActive()

Поддерживаемые OS

Все

<- MouseY() - Оглавление Mouse