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

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

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

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

14.7. Функция _setbkcolor()

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

long _setbkcolor( long color );

В текстовых режимах параметр color должен содержать индекс устанавливаемого цвета фона (см. таблицу 15.1). Например, если палитра устанавливаемая по умолчанию не изменялась, то чтобы напечатать символы на красном фоне, надо вызвать функцию _setbkcolor( 4L ). При использовании функции фон отображенных ранее символов не изменяется.

В графических режимах параметр color должен содержать константу, соответствующую устанавливаемому цвету (см. таблицу 15.1). Например, если палитра устанавливаемая по умолчанию не изменялась, то чтобы напечатать символы на красном фоне, надо вызвать функцию _setbkcolor( _RED ). Константы определены во включаемом файле graph.h следующим образом:

// универсальные цветовые значения

#define _BLACK         0x000000L      // черный
#define _BLUE          0x2a0000L      // голубой
#define _GREEN         0x002a00L      // зеленый
#define _CYAN          0x2a2a00L      // синий
#define _RED           0x00002aL      // красный
#define _MAGENTA       0x2a002aL      // малиновый
#define _BROWN         0x00152aL      // коричневый
#define _WHITE         0x2a2a2aL      // белый
#define _GRAY          0x151515L      // серый
#define _LIGHTBLUE     0x3F1515L      // светло-голубой
#define _LIGHTGREEN    0x153f15L      // светло-зеленый
#define _LIGHTCYAN     0x3f3f15L      // светло-синий
#define _LIGHTRED      0x15153fL      // светло-красный
#define _LIGHTMAGENTA  0x3f153fL      // светло-малиновый   
#define _YELLOW        0x153f3fL      // желтый
#define _BRIGHTWHITE   0x3f3f3fL      // интенсивно-белый
   
#define _LIGHTYELLOW   _YELLOW      

Данные константы представляют цвета в формате, соответствующем регистрам таблицы цветов цифро-аналогового преобразователя адаптера VGA. Каждая константа состоит из трех байт, причем у каждого байта только шесть младших байта значащие.

Следует особо подчеркнуть, что в текстовом режиме после вызова функции цвет фона уже выведенных символов не изменяется, а в графическом режиме сразу меняется цвет всех фоновых символов экрана.

В текстовом режиме функция _setbkcolor() возвращает старый индекс цвета фона, а в графическом - универсальное значение цвета фона (см. таблицу 15.1).

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