Функция 04h - Перемещение маркера мыши. — КиберПедия 

Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...

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

Функция 04h - Перемещение маркера мыши.

2023-01-01 24
Функция 04h - Перемещение маркера мыши. 0.00 из 5.00 0 оценок
Заказать работу

Перемещает активный маркер мыши в указанную точку экрана.

Входные данные: AX = 004H

CX = координата X (горизонтальная координата маркера)

DX = координата Y (вертикальная координата маркера)

Выходные данные: Отсутствуют

Примечания: Координаты, возвращаемые в регистрах CX и DX, являются координатами элементов изображения на виртуальном экране мыши, а не физическими координатами на реальном экране. Если указанная в обращении позиция находится за пределами диапазона перемещения маркера мыши, заданного функциями 07H и 08H, то функция корректирует координаты таким образом, что маркер остается внутри диапазона. Маркер перемещается в новую позицию даже в том случае, если он не воспроизводится на экране. После того, как воспроизведение маркера мыши снова будет разрешено, он появится в новой позиции.

 

Функция 05h - Определение числа нажатий кнопки мыши. Информирует вызывающую программу о том, сколько раз была нажата указанная кнопка мыши с момента последнего обращения к функции 05H. Функция 05H также сообщает вызывающей программе координаты маркера на экране в момент последнего нажатия кнопки.

Входные данные: AX = 0005H

BX = кнопка мыши

BX = 0: левая кнопка мыши

BX = 1: правая кнопка мыши

BX = 2: средняя кнопка мыши

Выходные данные: BX = состояние всех кнопок мыши:

Бит 0 = 1: нажата левая кнопка

Бит 1 = 1: нажата правая кнопка

Бит 2 = 1: нажата средняя кнопка

Биты 3-15: не используются

BX = кнопки мыши, которые были нажаты с момента последнего обращения к функции.

CX = горизонтальная координата в момент последнего нажатия.

DX = вертикальная координата маркера в момент последнего нажатия.

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

 

Функция 06h - Определение числа отпусканий кнопки мыши. Информирует вызывающую программу о том, сколько раз была отпущена указанная кнопка мыши с момента последнего обращения к функции 06H. Функция 06H также сообщает вызывающей программе координаты маркера на экране в момент последнего отпускания кнопки.

Выходные данные: AX = 0006H

BX = кнопка мыши

BX = 0: левая кнопка мыши

BX = 1: правая кнопка мыши

BX = 2: средняя кнопка мыши

Выходные данные: BX = состояние всех кнопок мыши:

Бит 0 = 1

Бит 1 = 1

Бит 2 = 1

BX = кнопки мыши, отпущенные с момента последнего обращения.

CX = горизонтальная координата маркера в момент последнего отпускания кнопки.

DX = вертикальная координата маркера в момент последнего отпускания кнопки.

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

 

Функция 07h - Задание диапазона перемещения по горизонтали. Определяет диапазон перемещения маркера мыши по горизонтали. После того, как диапазон установлен, пользователь не может вывести маркер мыши за его пределы.

Входные данные: AX = 0007H

CX = минимальная горизонтальная координата маркера

DX = максимальная горизонтальная координата маркера

Выходные данные: Отсутствуют

Примечание: Координаты, передаваемые в регистрах CX и DX, описывают положение элементов изображения на виртуальном экране мыши, а не физические координаты на реальном экране. Если в момент обращения к функции 07H маркер мыши находится за пределами устанавливаемого диапазона, то драйвер мыши автоматически перемещает его внутрь диапазона. Если значение DX меньше значения CX, то эти параметры меняются местами.

 

Функция 08h - Задание диапазона перемещения мыши по вертикали. Определяет диапазон перемещения маркера мыши по вертикали. После того, как диапазон установлен, пользователь не может вывести маркер мыши за его пределы.

Входные данные: AX = 0008H

CX = минимальная вертикальная координата маркера

DX = максимальная вертикальная координата маркера

Выходные данные: Отсутствуют

Примечание: Координаты, передаваемые в регистрах CX и DX, описывают положение элементов изображения на виртуальном экране мыши, а не физические координаты на реальном экране. Если в момент обращения к функции 08H маркер мыши находится за пределами устанавливаемого диапазона, то драйвер мыши автоматически перемещает его внутрь диапазона. Если значение DX меньше значения CX, то эти параметры меняются местами.

 

Функция 09h - Описание маркера мыши (в графическом режиме). Описывает внешний вид маркера мыши в графическом режиме, а также битовое поле, корректирующее элементы изображения вокруг маркера мыши.

Входные данные: AX = 0009H

BX = ширина маркера, начиная с левого края битового поля

CX = высота маркера, начиная с верхнего края битового поля

EX = адрес сегмента битового поля

DX = смещение битового поля

Выходные данные: Отсутствуют

Примечания: Битовое поле состоит из 64 байтов, из которых первые 32 являются результатом операции AND, а остальные 32 байта результат операции OR с текущими элементами изображения.

 

Функция 0ah - Описание маркера мыши (в тестовом режиме). Описывает битовую маску, определяющую внешний вид маркера в текстовом режиме.

Входные данные: AX = 000AH

BX = тип маркера

BX = 0: программный

BX = 1: аппаратный

CX = маска AND (программный маркер) или начальная линия (аппаратный маркер)

DX = маска XOR (программный маркер) или конечная линия (аппаратный маркер)

Выходные данные: Отсутствуют.

Примечания: Если выбран программный маркер, то код символа, находящегося под маркером, и байт атрибутов этого символа логически умножаются (AND) на маску, заданную в регистре CX, а затем выполняется операция "исключающее или" (XOR) между результатом умножения и маской в регистре DX. Для байта атрибутов эти операции выполняются со старшим байтом регистров CX и DX (CH и DH), а для кода символа с младшим байтом (CL и DL). Аппаратный маркер имеет такую же форму как обычный текстовый курсор. В монохромном режиме значения начальной и конечной линий изменяются в диапазоне от 0 до 13. В цветном режиме значение линий изменяется от 0 до 7.

 

Функция 0bh - Определение величины перемещения. Определяет расстояние между текущим положением мыши и положением мыши в момент последнего обращения к функции 0BH.

Входные данные: AX = 000BH

Выходные данные: CX = расстояние от последней точки по горизонтали (в микки)

DX = расстояние от последней точки по вертикали (в микки).

Примечания: Эти значения должны интерпретироваться как числа со знаком. Положительные значения указывают на перемещение в нижнюю или правую часть экрана, а отрицательные - в верхнюю или левую часть экрана. Расстояния выражены в микки (1 микки = 1/200 дюйма), а не в элементах изображения.

 

Функция 0ch - Задание обработчика событий.

Задает адрес обработчика событий, вызываемого драйвером мыши в случае определенных событий, имеющих отношение к мыши.

Входные данные: AX = 000CH

CX = события, вызывающие обращение к обработчику (маска событий)

Бит 0: перемещение мыши

Бит 1: нажатие левой кнопки мыши

Бит 2: отпускание левой кнопки мыши

Бит 3: нажатие правой кнопки мыши

Бит 4: отпускание правой кнопки мыши

Бит 5: нажатие средней кнопки мыши

Бит 6: отпускание средней кнопки мыши

Биты 7-15: не используются

ES = адрес сегмента обработчика

DX = смещение обработчика

Выходные данные: Отсутствуют.

Примечания: Драйвер мыши обращается к обработчику событий через ассемблерную команду call типа FAR, и потому обработчик событий должен заканчиваться командой RET типа EAR. Ни один из регистров процессора не должен быть возвращен в вызывающую программу с измененным содержанием. Драйвер мыши передает обработчику событий следующую информацию через регистры процессора:

1. AX = маска событий. Биты этой маски соответствуют событиям, указанным в регистре CX при установке обработчика событий. Кроме того, могут быть установлены в единицу и другие биты, поскольку эта маска отражает текущее состояние драйвера мыши и не ограничивается событиями, выбранными при установке обработчика событий.

BX = состояние кнопок мыши:

Бит 0 = нажата левая кнопка мыши

Бит 1 = нажата правая кнопка мыши

Бит 2 = нажата средняя кнопка мыши

CX = горизонтальная координата маркера мыши

DX = вертикальная координата маркера мыши

SI = величина последнего перемещения мыши по горизонтали

DI = величина последнего перемещения мыши по вертикали

DS = сегмент драйвера мыши

2. Координаты, передаваемые в регистрах CX и DX, описывают положение элементов изображения на виртуальном экране мыши, а не физические координаты на реальном экране. Значения в регистрах SI и DI выражены в микки (1 микки = 1/200 дюйма). Эти значения должны интерпретироваться как числа со знаком. Положительные значения указывают на перемещение в нижнюю или правую часть экрана, а отрицательное - на перемещение в верхнюю или левую часть экрана.

 

Функция 0fh - Задание скорости маркера.

Устанавливает соотношение между микки (1 микки = 1/200 дюйма) и элементами изображения на экране. Это соотношение определяет чувствительность мыши и скорость перемещения по экрану.

Входные данные: AX = 000FH

CX = число микки по горизонтали

DX = число микки по вертикали

Выходные данные: Отсутствуют.

Примечания: Значения регистров CX и DX могут изменяться в диапазоне от 1 до 32767. По умолчанию скорость задается равной 8 микки по горизонтали и 16 микки по вертикали. Таким образом, по горизонтали маркер двигается вдвое быстрее, чем по вертикали. Обращение к функции 00H (сброс драйвера мыши) отменяет любые установленные значения скорости и заменяет их значениями по умолчанию.

 


Поделиться с друзьями:

Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...

История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...

Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьше­ния длины пробега и улучшения маневрирования ВС при...

Кормораздатчик мобильный электрифицированный: схема и процесс работы устройства...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.032 с.