Программирование видеоадаптеров CGA, EGA и VGA© Александр Фролов, Григорий ФроловТом 3, М.: Диалог-МИФИ, 1992, 287 стр. 14.3. Функция _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 );
}
|

