Setallpa
setallpalette
Функция Изменяет всю палитру красок.
Синтаксис #include
void far setallpalette(struct palettetype far *palette);
Файл, содержащий graphics.h прототип
Описание setallpalette устанавлмвает текущую политру в значения, заданные в структуре palettetype, на которую указывает параметр palette. Вы можете частично (или полностью) изменить цвета политры EGA/VGA c помощью функции setallpalette.
Константа MAXCOLORS и структура palettetype ис- пользуемые в setallpalette, определены в graphics.h следующим образом:
#define MAXCOLORS 15
struct palettetype{ unsigned char size; signed char colors[MAXCOLORS+1]; };
size содержит количество цветов в палитре для те- кущего графического драйвера в текущем режиме.
colors -массив из size байтов, содержащий ряд но- меров цветов для каждого элемента палитры. Если элемент в массиве colors равен -1, то цвет палит- ры для этого элемента не изменяется.
Элементы массива colors, используемые в setallpalette, могут быть представлены в виде символических констант, определенных в 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 -----------------------------------------------------
Заметим, что цвета зависят от текущих графическо- го драйвера и графического режима.
Изменения, произведенные в палитре, сразу же мо- гут быть увидены на экране. При изменении цвета в палитре, все на экране, окрашенное в этот цвет, станет окрашенным в новый цвет.
Замечание. setallpalette не может использоваться с драйвером IBM-8514.
Возвращаемое Если в setallpalette передается ошибочное значение значение, graphresult возвратит -11(grError) а текущая палитра останется без изменений.
Переносимость Функция уникальна для Turbo C++. Она работает только на компьютерах IBM PC и совместимых с ни- ми, оснащенных дисплейными адаптерами, поддержи- вающими графический режим.
Смотрите также
Пример:
#include
#include
#include
#include
int main(void) { /* Запрос автоопределения */ int graphdriver = DETECT, gmode, errorcode; struct palettetype pal; 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"); /* получить копию палитры */ getpalette(&pal); /* вывести значения цветов палитры */ for(color = 1; color