Электронная библиотека книг Александра Фролова и Григория Фролова.
Shop2You.ru Создайте свой интернет-магазин
Библиотека
Братьев
Фроловых

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

© Александр Фролов, Григорий Фролов
Том 3, М.: Диалог-МИФИ, 1992, 287 стр.

[Назад] [Содеожание] [Дальше]

14.9. Функция _settextcolor()

Функция устанавливает цвет символов, выводимых функцией _outtext():

short _settextcolor( short index );

Параметр содержит индекс нового цвета символов из таблицы 15.1. Если к номеру индекса прибавить 0x10, то выводимые символы будут мигать.

Функция возвращает предыдущий индекс цвета символов.

Ниже приведен пример использования функций определения и установки цвета фона и цвета текста _getbkcolor(), _setbkcolor(), _gettextcolor(), _settextcolor():

// Пример использования функций _getbkcolor(), _setbkcolor(),
// _gettextcolor(), _settextcolor().


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

void main(void)
{
   char   buffer[80];
   short  text_color, old_text_color;
   long   background_color, old_background_color;
   struct rccoord old_pos;

   // сохраняем текущие цвета символов и фона, 
   // а также положение курсора

   old_text_color = _gettextcolor();
   old_background_color = _getbkcolor();
   old_pos = _gettextposition();

   // очищаем экран

   _clearscreen( _GCLEARSCREEN );

// устанавливаем по очереди первые 25 из 32 возможных цветов фона

   for(background_color = 0;
      background_color < 26; background_color++) {
      _setbkcolor(background_color );
      _settextposition((short)background_color, 1);
      _settextcolor(_BRIGHTWHITE);
      sprintf(buffer, "Фон: %3d. Текст:", background_color);
      _outtext(buffer);
   // устанавливаем по очереди первые 23 из 32 возможных цветов текста

      for(text_color = 0; text_color < 24; text_color++) {
         _settextcolor(text_color);
         sprintf(buffer, " %d", text_color);
         _outtext(buffer);
      }
   }
   getch();

   // восстанавливаем цвета символов и фона,
   // а также позицию курсора

   _settextcolor(old_text_color);
   _setbkcolor(old_background_color);
   _clearscreen(_GCLEARSCREEN);
   _settextposition(old_pos.row, old_pos.col);
}
[Назад] [Содеожание] [Дальше]