Setpalet
setpalette
Функция Изменяет один цвет в палитре.
Синтаксис #include
void far setpalette(int colornum, int color);
Файл, содержащий graphics.h прототип
Описание setpalette устанавливает элемент colornum в color. Например, setpalette(0,5) изменяет пер- вый цвет текущей палитры (цвет фона) на цвет, имеющий код 5. Если size -это количество элемен- тов в текущей палитре, то colornum может изме- няться от 0 до (size -1).
Вы можете частично (либо целиком) поменять цвета в EGA/VGA палитре с помощью setpalette. На CGA же вы можете изменить лишь первый элемент палитры (colornum равен 0, цвет фона).
Элементы массива colors, используемые в setpalette, могут быть представлены ввиде симво- лических констант, определенных в graphics.h
----------------------------------------------------- Таблица доступных цветов ----------------------------------------------------- CGA EGA/VGA Имя Знач Имя Знач. ----------------------------------------------------- BLACK 0 EGA_BLACK 0 BLUE 1 EGA_BLUE 1 GREEN 2 EGA_GREEN 2 CYAN 3 EGA_CYAN 3 RED 4 EGA_RED 4 MAGENTA 5 EGA_MAGENTA 5 BROWN 6 EGA_LIGHTGRAY 7 LIGHTGRAY 7 EGA_BROWN 20 DARKGRAY 8 EGA_DARKGRAY 56 LIGHTBLUE 9 EGA_LIGHTBLUE 57 LIGHTGREEN 10 EGA_LIGHTGREEN 58 LIGHTCYAN 11 EGA_LIGHTCYAN 59 LIGHTRED 12 EGA_LIGHTRED 60 LIGHTMAGENTA 13 EGA_LIGHTMAGENTA 61 YELLOW 14 EGA_YELLOW 62 WHITE 15 EGA_WHITE 63 -----------------------------------------------------
Заметим, что цвета зависят от текущих графическо- го драйвера и графического режима.
Изменения, произведенные в палитре, сразу же от- ражаются на экране. При изменении цвета в палит- ре, все на экране, окрашенное в этот цвет, станет окрашенным в новый цвет.
Замечание. setpalette не может использоваться с драйвером IBM-8514.
Возвращаемое Если в setpalette передается ошибочное значение значение, graphresult возвратит -11(grError) а текущая палитра останется без изменений.
Переносимость Функция уникальна для Turbo C++. Она работает только на компьютерах IBM PC и совместимых с ни- ми, оснащенных дисплейными адаптерами, поддержи- вающими графический режим.
Смотрите также
Пример:
#include
#include
#include
#include
int main(void) { /* Запрос автоопределения */ int graphdriver = DETECT, gmode, errorcode; int color,maxcolor,ht; int y=10; char msg[80];
/* инициализация графики и локальных переменных */ initgraph(&graphdriver,&gmode,"");
/* получение результата инициализации */ errorcode = graphresult(); if(errorcode != grOk) /* если ошибка */ { printf("Ошибка :%s\n",grapherrormsg(errorcode)); printf("Для останова нажмите любую клавишу\n"); getch(); exit(1); /* завершение с кодом ошибки */ } maxcolor = getmaxcolor(); ht = 2*textheight("W"); /* вывести цвета по умолчанию */ for(color=0;color