Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Функция 08h позволяет ограничить диапазон перемещений курсора мыши по вертикали.

Читайте также:
  1. Access позволяет создавать запросы в режиме Конструктора и с помощью про­грамм-мастеров.
  2. III. Игра и состязание как культуросозидающая функция .... 60
  3. III. Функция эфирного тела
  4. Sock of Feather — позволяет прыгать выше. усиливает Levitation у Undead-а 6 Flaming Gloves of Warmth — в вашем боевом запасе будет появляться he-граната, каждые 10 сек.
  5. Автокорреляционная функция ЛЧМ-сигнала. Сечения функции неопределенности ЛЧМ-сигнала. Выбор класса зондирующих сигналов для РЛС.
  6. АНАЛИЗАТОРНАЯ ФУНКЦИЯ
  7. Бағалы қағаздар нарығының функциялары

Регистры на входе: АХ = 0007h

СХ = минимальная координата Y;

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

Регистры на выходе: Регистры не используются

Задание формы курсора в графическом режиме.

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

Регистры на входе: АХ = 0009h

ВХ = номер позиции точки-указателя графического курсора (от -16 до 16);

CX = номер строки точки-указателя (от -16 до 16)

ES:DX = указатель на растровое изображение курсора

Регистры на выходе: Регистры не используются

Регистры ES:DX указывают на область памяти размером 64 байта. Эта область состоит из двух массивов длиной по 32 байта. Первый массив представляет собой логическую маску размером 16х16 бит, которая накладывается на участок видеопамяти с использованием логической операции "И". Второй массив - тоже маска размером 16х16 бит, но она накладывается с использованием логической операции "Исключающее ИЛИ", инвертируя отдельные точки изображения.

Номера позиции и строки точки-указателя, устанавливаемые по умолчанию, равны нулю (ВХ = СХ = 0). Это соответствует верхней левой точке в изображении курсора. Значения ВХ = СХ = 15 соответствуют нижней правой точке.

Задание формы курсора в текстовом режиме.

С помощью функции 0Ah программа может изменять форму курсора мыши в текстовом режиме.

Регистры на входе: AX = 000Ah

BX = тип курсора:

Определяемый программно;

Определяемый аппаратно;

СХ = маска экрана (для ВХ = 0) или конечная строка курсора (для ВХ = 1)

DX = маска курсора (для ВХ = 0) или конечный столбец курсора (для ВХ = 1)

Регистры на выходе: Регистры не используются

В зависимости от содержимого регистра ВХ драйвер мыши использует курсор, определяемый аппаратными средствами, либо курсор, определяемый программно. По умолчанию используется программный курсор, который отображается в виде символа с инвертированным значением атрибута. Курсор, сформированный аппаратными средствами, выглядит аналогично обычному текстовому курсору, его форма - прямоугольник. Размер прямоугольника можно задавать при помощи регистров СХ и DX.

Для курсора, определяемого программно, вначале выполняется операция логического "И" над содержимым видеопамяти в том месте, куда указывает курсор, и маской экрана. Затем выполняется операция "Исключающее ИЛИ" с маской курсора.

Младший байт масок соответствует коду ASCII символа, старший - это байт атрибута символа.

Значения, используемые по умолчанию, - ВХ = 7700h, CX = FFFFh.

Если требуется изменить цвет курсора, не меняя его форму, надо задать СХ = 00FFh, ВХ = хх00h, где хх определяет цвет.

Программа 7.1 инициализирует мышь, а также определяет количество клавиш мыши.

#include<stdio.h>

#include<conio.h>

#include<dos.h>

Int main(void)

{

Int nButtons;

Union REGS rg;

// Инициализируем мышь

rg.x.ax=0;

int86(0x33, &rg, &rg);

if(rg.x.bx==0)

{

printf("Mouse not found\n");

Return -1;

}

//Сохраняем количество клавиш

nButtons=rg.x.bx;

printf("Mouse type:");

Switch(nButtons)

{

case 2:

{

printf("2-button mouse\n");

Break;

}

case 3:

{

printf("3-button mouse\n");

Break;

}

case 0:

{

printf("Unknown type %d\n", nButtons);

Break;

}

default:

{

printf("Unknown type %d\n", nButtons);

Break;

}

}

//Включаем курсор и ожидаем, пока пользователь нажмет клавишу

rg.x.ax=1;

int86(0x33, &rg, &rg);

printf("Mouse cursor on. Press any key\n");

Getch();

//Выключаем курсор

rg.x.ax=2;

int86(0x33, &rg, &rg);

printf("Mouse cursor off. Press any key\n");

Getch();

Return 0;

}

Программа 7.2 Программа запрашивает номер режима видеоадаптера, устанавливает его и динамически отображает координаты курсора, а также состояние клавиш мыши. После завершения работы программа восстанавливает первоначальный режим видеоадаптера.

#include<dos.h>

#include<stdio.h>

#include<conio.h>

#include<stdlib.h>


Дата добавления: 2015-12-07; просмотров: 82 | Нарушение авторских прав



mybiblioteka.su - 2015-2024 год. (0.008 сек.)