35 FreeBASIC - Mouse приручаем хвостатую зверюшку
С появлением графического интерфейса почти все действия происходят с мышью, клавиатуре же остаются только процесс набор символов. Управляющие кавиши конечно используются, но не так часто как мышь. И быть без мыши не так то просто - как же ею управлять?
Во FreeBASIC для этого есть две команды Getmouse и Setmouse
GetMouse
позволяет узнать где находится мышь и состояние её кнопок. GetMouse это функция, которая возвращает 0 если всё прошло удачно, и 1 если была ошибка.
r = GetMouse(x, y [, [ wheel ] [, [ buttons ] [, [ clip ]]]])
в квадратных скобках в справке пишут параметры которые можно не указывать.
Например, нужно узнать лишь координаты - r = GetMouse(x, y),
r = GetMouse(x, y,,buttons), а здесь координаты и состояние кнопок
в buttons находится состояние всех трёх кнопок
buttons And 1 = 1 если нажата левая кнопка
buttons And 1 = 2 если нажата правая кнопка
buttons And 1 = 4 если нажата средняя(колёсико) кнопка
Dim As Integer x, y, buttons, res
ScreenRes 640, 480, 8
Do
res = GetMouse (x, y, , buttons)
Locate 1, 1
If res <> 0 Then
Print "Mouse not available or not on window"
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
Итак, GetMouse позволяет определить текущие координаты мыши(если они в пределах активного окна) и нажатие кнопок - левой, правой и средней.
SetMouse
Иногда бывает нужно принудительно установить указатель мыши в определённое место на экране. Сделать это можно с помощью функции SetMouse Эта функция также может сделать курсов видимым(visibility=1) и не видимым(visibility=0). Аргумент clip определяет захватывается ли мышь окном(т.е. мышь нельзя переместить за пределы окна)
r = SetMouse([ x ] [, [ y ] [, [ visibility ] [, [ clip ]]]])
screenres 800,600
dim i as integer
for i =100 to 800 step 50
setmouse i,100
sleep 500
next i
sleep