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

       

Функция _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).



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