Извлекает состояние указанного устройства мыши
Синтаксис
Использование
result = GetMouse (x, y [, [ wheel ] [, [ buttons ] [, [ clip ]]]])
Параметры
x
значение координаты x
y
значение координаты y
wheel
значение колеса прокрутки
buttons
состояние кнопок
clip
состояние отсечения (захвата мыши в графическом окне)
 Возвращаемое значение
Описание
GetMouse извлекает позицию мыши и статус кнопок; информация 
	возвращается в переменных, переданных этой функции в качестве ссылки. Если 
	мышь не доступна, все переменные будут содержать значение -1. 
	Если в консольном режиме, х и у координаты являются символьными координатами 
	клетки; верхний левый угол экрана находится на координатах 0, 0; Если мышь 
	выходит из окна консоли, GetMouse возвращает последнюю координату мыши. Если 
	в консольном и полноэкранном режиме, значение колеса прокрутки не 
	возвращается.
	В графическом режиме, x и y всегда возвращаются в пиксельных координатах по 
	отношению к верхнему левому углу экрана, который в данном случае является 
	0,0; пользовательские системы координат, устанавливаемые с помощью 
	View или 
Window не влияют 
	на координаты, возвращаемые 
GetMouse. Если мышь выходит из 
	окна, все значения устанавливаются в 
-1.
Wheel - это счетчик колеса мыши; вращение колеса от вас создает 
	увеличение, вращение колеса к вам делает уменьшение. При запуске программы 
	или когда новый графический режим устанавливается через 
Screen, 
	положение счетчика колеса сбрасывается в 0. FreeBASIC может и не 
	поддерживать колесо мыши для какой-то платформы, и в этом случае всегда 
	возвращается 0.
Buttons сохраняет статус кнопок как битовую маску: бит 0 
	устанавливается, если левая кнопка мыши нажата; бит 1 устанавливается, если 
	правая кнопка мыши нажата; бит 2 устанавливается, если средняя кнопка 
	мыши/колесо нажата.
Clip возвращает статус отсечения мыши; если 
1, мышь 
	захвачена в пределах графического окна; если 0, мышь не захвачена.
 Пример
Dim As Integer x, y, buttons, res 
' Установим режим окна
ScreenRes 640, 480, 8
Do
    ' Получим координаты 
мыши х, у и кнопки. Положение колеса не проверяем.
    res = GetMouse (x, y, , buttons)
    Locate 1, 1
    If res <> 0 Then '' Ошибка
#ifdef __FB_DOS__
        Print "Mouse or mouse driver not available"
#else
        Print "Mouse not available or not on window"
#endif
    Else
        Print Using "Mouse position: ###:###  Buttons: "; x; y;
        If buttons And 1 Then Print "L";
        If buttons And 2 Then Print "R";
        If buttons And 4 Then Print "M";
        Print "   "
    End If
Loop While Inkey = ""
End
'Пример 2: type-union-type структура
Type mouse
    As Integer res
    As Integer x, y, wheel, clip
    Union
        buttons As Integer
        Type
            Left:1 As Integer
            Right:1 As Integer
            middle:1 As Integer
        End Type
    End Union
End Type
 
Screen 11
Dim As mouse m
Do
    m.res = GetMouse( m.x, m.y, m.wheel, m.buttons, m.clip )
    Cls
    Print Using "res = #"; m.res
    Print Using "x = ###; y = ###; wheel = +###; clip = ##"; m.x; m.y; m.wheel; m.clip
    Print Using "buttons = ##; left = #; middle = #; right = #"; m.buttons; m.left; m.middle; m.right
    Sleep 10, 1
Loop While Inkey = ""
 Различия диалектов
-  Не доступна в диалекте -lang qb 
				, но есть псевдоним __Getmouse. Передаваемые 
				переменные должны быть типа Long 
				вместо Integer.
 
 
 Различия платформ
-  В Win32, возвращаемые значения изменения колеса не гарантируются в 
				полноэкранном режиме консоли.
 
-  В DOS, значение "clip" не имеет никакого эффекта. Кроме того колесо и 
средняя кнопка не будут работать, если не поддерживаются драйвером мыши. См. 
также FaqDOS.
 
 
 Отличия от QB
См. также