Уважаемые пользователи Голос!
Сайт доступен в режиме «чтение» до сентября 2020 года. Операции с токенами Golos, Cyber можно проводить, используя альтернативные клиенты или через эксплорер Cyberway. Подробности здесь: https://golos.io/@goloscore/operacii-s-tokenami-golos-cyber-1594822432061
С уважением, команда “Голос”
GOLOS
RU
EN
UA
sergiy
6 лет назад

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

7
463.145 GOLOS
На Golos с October 2016
Комментарии (4)
Сортировать по:
Сначала старые