Описание функций Си

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


Содержание раздела