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

Смотрите также      getpalette graphresult setbkcolor setcolor
                    setrrgbpalette

Пример:

#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