Читайте также:
|
|
Использование функции 03h не самый лучший способ работы с мышью. Программа должна постоянно следить за координатами курсора или за состоянием клавиш. Это может привести к непроизводительным затратам процессорного времени на опрос состояния.
Далее рассмотрены другие способы определения состояния мыши.
Установка курсора в заданную позицию.
Обычно курсор мыши устанавливает не программа, а пользователь. Однако с помощью функции 04h программа тоже может установить курсор в заданную позицию.
Регистры на входе: АХ = 0004h
СХ = новая координата Х курсора;
DX = новая координата Y курсора
Регистры на выходе: Регистры не используются
Для текстового режима устанавливаемые номера строки и столбца должны быть умножены на 8.
В том случае, когда программа пытается установить курсор в область, где курсор невидим (эта область задается функцией 10h), она сможет это сделать. Курсор при этом исчезнет с экрана, что не всегда желательно.
Если область для перемещения курсора была ограничена при помощи функцией 07h и 08h, то курсор будет вести себя следующим образом. При попытке установить курсор за границу ограничения он будет установлен в точку, которая находится внутри границы на минимальном расстоянии от точки, заданной при вызове функции.
Определение позиции курсора при нажатии клавиши.
Регистры на входе: АХ = 0005h
BX = клавиша при нажатии которой запоминается состояние мыши: 0 - левая; 1 - правая; 2 - средняя.
Регистры на выходе: АХ = состояние клавиш мыши;
ВХ = количество нажатий на заданную клавишу. Это значение обнуляется после вызова функции;
СХ = координата курсора Х;
DX = координата курсора Y
В зависимости от того, была ли нажата какая-либо клавиша мыши в момент вызова функции, в регистре АХ могут быть установлены следующие флаги:
Бит регистра АХ | Клавиша, которая была нажата |
Левая | |
Правая | |
Средняя |
В отличие от функции 03h эта функция возвращает программе не текущее состояние мыши, а запомненное в момент последнего нажатия на клавишу, заранее определенную при вызове функции. Она также возвращает количество нажатий на заданную клавишу, которое можно использовать для обнаружения двойных щелчков.
Определение положения курсора при отпускании клавиши.
Функция 06h возвращает программе состояние мыши, запомненное в момент отпускания клавиши, которая была заранее определена при вызове функции. Она также возвращает количество отпусканий заданной клавиши.
Регистры на входе: АХ = 0006h
ВХ = клавиша, при отпускании которой запоминается состояние мыши: 0 - левая; 1 - правая; 2 – средняя.
Регистры на выходе:
АХ = состояние клавиш мыши;
ВХ = количество отпусканий заданной клавиши. Это значение обнуляется при вызове функции;
СХ = координата курсора Х;
DX = координата курсора Y.
Формат регистра АХ, определяющий состояние клавиш мыши, такой же как и для функции 05h.
7. Задание диапазона движения курсора по горизонтали (вертикали).
Функция 07h позволяет ограничить диапазон перемещений курсора мыши по горизонтали.
Регистры на входе: АХ = 0007h
СХ = минимальная координата Х;
DX = максимальная координата Х
Регистры на выходе: Регистры не используются
Задание диапазона движения курсора по вертикали
Дата добавления: 2015-12-07; просмотров: 118 | Нарушение авторских прав