Функция Устанавливает текущий цвет рисования, используя
палитру.
Синтаксис #include
void far setcolor(int color);
Файл, содержащий graphics.h
прототип
Описание setcolor изменяет текущий цвет рисования, ко-
торый может изменяться от 0 до getmaxcolor.
Текуший цвет рисования - это значение которое
присваивается пикселям при рисовании линий и т.п.
Следующие таблицы содержат цвета, используемые в
CGA и EGA соответственно.
-----------------------------------------------------------
Номер Константа присвоенная номеру цвета(значение пиксел
палитры 1 2 3
-----------------------------------------------------------
0 CGA_LIGHTGREEN CGA_LIGHTRED CGA_YELLOW
1 CGA_LIGHTCYAN CGA_LIGHTMAGENTA CGA_WHITE
2 CGA_GREEN CGA_RED CGA_BROWN
3 CGA_CYAN CGA_MAGENTA CGA_LIGHTGRA
-----------------------------------------------------------
---------------------------------
Числовое Символическое
значение имя
---------------------------------
0 BLACK
1 BLUE
2 GREEN
3 CYAN
4 RED
5 MAGENTA
6 BROWN
7 LIGHTGRAY
8 DARKGRAY
9 LIGHTBLUE
10 LIGHTGREEN
11 LIGHTCYAN
12 LIGHTRED
13 LIGHTMAGENTA
14 YELLOW
15 WHITE
-----------------------------------
Вы выбираете цвет рисования, посылая либо сам но-
мер цвета, либо соответствующее символическое имя
в setcolor. Например, в режиме CGAC0 палитра сос-
тоит из четырех цветов: цвет фона, яркозеленый,
яркокрасный и желтый. В этом режиме либо вызовом
setcolor(3)
либо
setcolor(CGA_YELLOW)
выбирается желтый цвет рисунка.
Возвращаемое Нет.
значение
Переносимость Эта функция пригодна только для компьюте-
ров IBM PC и совместимых с ними, оснащенных дис-
плейными адаптерами, поддерживающими графический
режим.
Переносимость Функция уникальна для Turbo C++. Она работает
только на компьютерах IBM PC и совместимых с ни-
ми, оснащенных дисплейными адаптерами, поддержи-
вающими графический режим.
Смотрите также getcolorgetmaxcolorgraphresultsetallpalettesetbkcolorsetpalette
Пример:
#include
#include
#include
#include
int main(void)
{
/* Выбрать драйвер и режим, поддерживающие несколько цветов */
int graphdriver = EGA, gmode = EGAHI, errorcode;
int color,x,y,maxcolor;
char msg[80];
/* инициализация графики и локальных переменных */
initgraph(&graphdriver,&gmode,"");
/* получение результата инициализации */
errorcode = graphresult();
if(errorcode != grOk) /* если ошибка */
{
printf("Ошибка :%s\n",grapherrormsg(errorcode));
printf("Для останова нажмите любую клавишу\n");
getch();
exit(1); /* завершение с кодом ошибки */
}
/* максимальный поддерживаемый индекс цвета */
maxcolor = getmaxcolor();
/* установить центрирование текста */
settextjustify(CENTER_TEXT,CENTER_TEXT);
x = getmaxx() / 2;
y = getmaxy() / 2;
/* цикл по допустимым цветам */
for(color=0;color<=maxcolor();color++)
{
/* очистить экран */
cleardevice();
setcolor(color);
/* вывести сообщение */
sprintf(msg,"Color: %d",color);
outtext(x,y,msg);
getch();
}
/* очистка */
getch();
closegraph();
return 0;
}