Графические устройства

         

Идентификация графических объектов



Идентификация графических объектов

Кнопки манипулятора "мышь" используются для управления процессом выполнения задач. Выбор выполняемых действий зависит от объекта, на который указывает курсор. Например, если курсор указывает на элемент меню, то при однократном нажатии на кнопку (обычно левую) этот элемент становится активным и выполняются связанные с ним действия. Нажатие на кнопку во время движения мыши может вызывать перемещение или изменение размеров объекта, на который указывает курсор. При работе в режиме редактирования в этом случае могут изменяться размеры и форма создаваемого объекта.

Перечень действий, выполняемых при нажатии на кнопку мыши, можно продолжать долго. Главное, на что следует обратить внимание, заключается в том, что процедуры, реагирующие на изменение состояния кнопок, как правило, должны идентифицировать расположенный под курсором объект. А как уже говорилось в разделе, для этого задача должна формировать список графических объектов, находящихся на экране в данный момент времени и поддерживать работу с этим списком.

Замечание
Описание процедур, реагирующих на изменение состояния кнопок, выходит за рамки данной книги, поэтому мы ограничимся следующим советом. Начните с составления простой подпрограммы, которая при нажатии левой кнопки проверяет нахождение курсора в прямоугольной области с заданными границами Xmin, Xmax, Ymin, Ymax. Если курсор находится в ней, то подпрограмма завершает выполнение задачи. На экране этим координатам может соответствовать прямоугольник с надписью "Выход" или "Exit". Затем усложните подпрограмму сделав так, чтобы значения указанных границ выбирались из формируемого задачей списка. Следующий шаг — при нахождении объекта в списке выполняется подпрограмма, адрес которой хранится в том же элементе, в котором указаны границы объекта. Так постепенно вы создадите универсальную процедуру для обработки событий, связанных с левой кнопкой.

 



Содержание раздела