Программирование видеоадаптеров CGA, EGA и VGA

       

Функция _settextcursor()


Для установки формы курсора, удобно использовать функцию _settextcursor() из стандартной библиотеки трансляторов Microsoft Quick C 2.5 и C 6.0. Фактически функция реализована через функцию 01h прерывания 10h.

Формат функции приведен ниже:

short _settextcursor( short shape);

Параметр shape задает новую форму курсора. Старший байт определяет верхную, а младший - нижную границы курсора (см. INT 10h, функция 01h).

Возвращаемая функцией величина определяет предыдущую форму курсора, или если она равна -1 - сообщает об ошибке.

Следующий пример демонстрирует использование функций _gettextcursor() и _settextcursor():

#include <stdio.h> #include <graph.h>

void main(void) { short old_cursor; char top = 0, bottom = 0; int error;

// запоминаем текущую форму курсора

old_cursor = _gettextcursor(); _displaycursor( _GCURSORON );

// если вводится отрицательное значение для любой границы, // то программа завершается

for(;top >= 0 && bottom >= 0 ;) {

// очищаем экран дисплея

_clearscreen( _GCLEARSCREEN ); printf("Введите верхнюю границу курсора:"); scanf("%d", &top); printf("Введите нижнюю границу курсора:"); scanf("%d", &bottom);

// изменение формы курсора

error = _settextcursor((top << 8) | bottom); _clearscreen( _GCLEARSCREEN ); if( error == -1) puts("Ошибка."); else printf("Предыдущая форма курсора:" "\n верхняя граница = %d," "\n нижняя граница = %d.", error >> 8, error & 0xFF);

// ожидаем нажатия на клавиатуру

getch(); }

// восстанавливаем прежнюю форму курсора _settextcursor( old_cursor ); }



Содержание раздела