Иллюстрированный самоучитель по SVGA

Построение рисунка курсора

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

На экране монитора текущее расположение мыши указывает специальный рисунок, который принято называть графическим курсором (graphics cursor) или указателем мыши (mouse pointer). Он удаляется с одного места и появляется на другом при каждом перемещении мыши. Текущие координаты курсора нужны задаче для выполнения различных действий.

В данной главе мы рассмотрим наиболее распространенные варианты построения рисунка курсора и обсудим способы организации взаимодействия задачи с манипулятором "мышь".


При работе в текстовых или графических режимах IBM драйвер мыши самостоятельно определяет установленный видеорежим и в зависимости от этого выбирает способ построения или удаления рисунка курсора, задача только разрешает или запрещает ему выполнять эти действия. Драйверы мыши предназначены для работы в среде DOS, они различают только стандартные режимы IBM. Поэтому после установки режимов VESA строить и перемещать рисунок курсора должна задача. В отличие от DOS, операционные системы семейства Windows и OS/2 поддерживают управление курсором, что упрощает действия прикладных задач.

Замечание
Напомним, что код текущего режима хранится в байте, расположенном в области данных BIOS, по адресу 0000:0449. Трехзначные коды режимов VESA непомещаются в байте, и их заменяют кодами OEM, которые уникальны для каждой модели видеокарты. Именно отсутствие стандартов на коды OEM не позволяет разрабатывать драйверы, выполняющие построение рисунка курсора во всех без исключения видеорежимах
.

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

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

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.