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
Все