Читайте также:
|
|
Инициализация мыши.
Для инициализации мыши используется функция с кодом 00h. Эта функция выполняет аппаратный сброс мыши и программную установку драйвера мыши в исходное состояние. С помощью функции 0h можно выполнить установку драйвера в исходное состояние, не выполняя аппаратного сброса мыши.
Регистры на входе: АX=0000h
Регистры на выходе: AX = состояние мыши
BX = количество клавиш у мыши.
Если на выходе из прерывания регистр AX содержит значение 0000h, значит драйвер мыши не установлен. Если содержимое этого регистра равно 0FFFFh, драйвер мыши имеется и вы можете использовать другие функции для работы с мышью.
В регистр ВХ возвращается количество клавиш мыши
Содержимое ВХ | Количество клавиш |
Больше или меньше чем две | |
Две клавиши | |
Мышь системы Mouse Systems, имеет 3 клавиши |
Включение (выключение) курсора мыши
Для включения курсора мыши используется функция 01h. Эта функция позволяет включать или выключать курсор мыши:
Регистры на входе: АХ = 0001h
Регистры на выходе: Регистры не используются
Для управления видимостью курсора драйвер использует внутренний счетчик. Этот счетчик можно увеличивать, вызывая функцию 01h прерывания 33h, или уменьшать при помощи функции 02h этого же прерывания.
После инициализации драйвера функцией 00h счетчик устанавливается равным -1. После первого вызова функции 01h счетчик становится равным нулю. При этом курсор мыши становится видимым, его можно перемещать по экрану.
Если счетчик равен нулю, то следующие вызовы функции 01h игнорируются драйвером. Для того, чтобы погасить курсор, используйте функцию 02h, которая при вызове уменьшает каждый раз содержимое счетчика на единицу.
Функция 01h сбрасывает область, в которую курсор не отображается (Если такая область была ранее установлена функцией 10h).
Для выключения курсора мыши используется функция 02h. Эта функция уменьшает на единицу счетчик видимости курсора. Если содержимое счетчика становится равным -1, изображение курсора пропадает с экрана.
Регистры на входе: АХ = 0002h
Регистры на выходе: Регистры не используются
Если программа применяет для вывода на экран метод прямой записи в видеопамять, перед обновлением содержимого экрана необходимо погасить курсор, а после завершения обновления - высветить его опять.
Это связано с тем, что драйвер мыши запоминает старое значение атрибута символа, на который указывал курсор до обновления содержимого видеопамяти. Вы изменили атрибут, записав новое значение непосредственно в экранную память. Теперь, если установить курсор мыши на другой символ, изображение старого символа будет испорчено - появится прямоугольник (как бы еще одно изображение курсора мыши).
Определение положения курсора.
Для определения положения курсора используется функция 03h. Эта функция возвращает текущие координаты курсора мыши и состояние клавиш.
Регистры на входе: АХ = 0003h
Регистры на выходе: ВХ = состояние клавиш мыши;
СХ = координата Х курсора;
DX = координата Y курсора;
В зависимости от того, была ли нажата какая-либо клавиша мыши в момент вызова функции, в регистре ВХ могут быть установлены следующие флаги:
Бит регистра ВХ | Клавиша, которая была нажата |
Левая | |
Правая | |
Средняя |
Для графических режимов координаты располагаются в различных диапазонах
Дата добавления: 2015-12-07; просмотров: 78 | Нарушение авторских прав