void far setpalette(int index, int color)
Прототип:
Описание:
Функция setpalette() изменяет цвета, выводимые видеосистемой. При первом знакомстве достаточно трудно разобраться с тем, что выполняет данная функция. По существу она ассоциирует значение параметра color с индексом в таблице, которую Borland С++ использует для отображения фактически показываемых цветов на экране. Значения кодов color показаны ниже.
Коды CGA (только фон):
| Макрос | Величина |
|---|---|
| BLACK | 0 |
| BLUE | 1 |
| GREEN | 2 |
| CYAN | 3 |
| RED | 4 |
| MAGENTA | 5 |
| BROWN | 6 |
| LIGHTGRAY | 7 |
| DARKGRAY | 8 |
| LIGHTBLUE | 9 |
| LIGHTGREEN | 10 |
| LIGHTCYAN | 11 |
| LIGHTRED | 12 |
| LIGHTMAGENTA | 13 |
| YELLOW | 14 |
| WHITE | 15 |
EGA и VGA:
| Макрос | Величина |
|---|---|
| EGA_BLACK | 0 |
| EGA_BLUE | 1 |
| EGA_GREEN | 2 |
| EGA_CYAN | 3 |
| EGA_RED | 4 |
| EGA_MAGENTA | 5 |
| EGA_BROWN | 20 |
| EGA_LIGHTGRAY | 7 |
| EGA_DARKGRAY | 56 |
| EGA_LIGHTBLUE | 57 |
| EGA_LIGHTGREEN | 58 |
| EGA_LIGHTCYAN | 59 |
| EGA_LIGHTRED | 60 |
| EGA_LIGHTMAGENTA | 61 |
| EGA_YELLOW | 62 |
| EGA_WHITE | 63 |
В режиме CGA может изменяться только фон. Индекс цвета фона всегда равен 0. Для режима CGA следующий код меняет цвет фона на зеленый:
setpalette (0, GREEN);
Режимы EGA выводят 16 цветов за раз. Можно использовать функцию setpalette() для установки соответствия цвету одного из 16 различных индексов.
Пример:
