setcolor

Функция            Устанавливает текущий цвет рисования, используя
                   палитру.

Синтаксис          #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 и совместимых с ни-
                   ми, оснащенных дисплейными адаптерами, поддержи-
                   вающими графический режим.

Смотрите также      getcolor getmaxcolor graphresult
                    setallpalette setbkcolor setpalette

Пример:

#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;
}