С для профессиональных программистов



         

Функции поддержки "мыши" верхнего уровня. - часть 2


int fnum, arg2, arg3, arg4;

fnum = 3;   /* Чтение позиции и статуса клавиши */

cmouses( &fnum, &arg2, &arg3, &arg4);

return arg2 & 2;

 

/* Возвращает значение "истина", если нажата левая клавиша,

и "ложь" в противном случае                                                                                            */

leftb_pressed()

int fnum, arg2, arg3, arg4;

fnum = 3;   /* Чтение позиции и статуса клавиши */

cmouses( &fnum, &arg2, &arg3, &arg4);

return arg2 & 1;

 

Как обнаружить перемещение "мыши"?

Функция 11, которая возвращает изменение значения счетчика "мыши" (в "мышиных" шагах) после последнего обращения к ней, позволяет определить факт перемещения "мыши". Функция mouse_motion(), представленная ниже, возвращает изменение

местоположения    "мыши"    в   горизонтальном   и   вертикальном

направлениях в переменных,  чьи  указатели  являются  аргументами

функции.  Если  оба  значения  deltax  и deltay равны 0,  то факт

int fnum, arg2, arg3, arg4;

fnum = 11; /* получить направление движения */

cmouses( &fnum, &arg2, &arg3, &arg4);

if(arg3>0) *deltax = RIGHT;

else if(arg3<0) *deltax = LEFT;

Чтение и установка позиции курсора.

Функции set_mouse_position()                                    и                   mouse_position(),

представленные  ниже,  используются  для установки чтения текущей

позиции курсора "мыши".

/* Установить координаты курсора "мыши" */

void set_mouse_position(x, y)

int x, y;

int fnum, arg2;

fnum = 4; /* установка позиции */

cmouses(&fnum, &arg2, &x, &y);

int fnum, arg2, arg3, arg4;

fnum = 3; /* получить позицию и статус клавиши */

cmouses( &fnum, &arg2, &arg3, &arg4);

*x = arg3;

*y = arg4;




Содержание  Назад  Вперед