CodeNet / Языки программирования / C / C++ / Руководства и справочные материалы по C/C++ / Справочники по функциям / Справочник по функциям C/C++
getpalette
getpalette
Функция Получает информацию о текущей палитре.
Синтаксис #include <graphics.h>
void far getpalette(struct palettetype far
*palette);
Файл, содержащий graphics.h
прототип
Описание Заполняет структуру palettetype, на которую
ссылается palette, информацией о размере политры и
ее цветах. Константа MAXCOLORS и структура
palettype, используемые getpalette, определены в
graphics.h следующим образом:
#define MAXCOLORS 15
struct palettetype{
unsigned char size;
signed char colors[MAXCOLORS+1];
};
size дает количество цветов в палитре текущего
драйвера и режима.
colors - это массив цветов данной палитры.
Примечание. getpalette нельзя использовать с
драйвером для IBM-8514.
Возвращаемое Нет.
значение
Переносимость Функция уникальна для Borland C++. Она работает
только на компьютерах IBM PC и совместимых с ними,
оснащенных дисплейными адаптерами, поддерживающими
графический режим. Функция не совместима с
Windows.
Смотрите также getbkcolor, getcolor, getdefaultpalette,
getmaxcolor, setallpalette, setpalette.
Пример:
#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
int main(void)
{
/* Запрос автоопределения */
int graphdriver = DETECT, gmode, errorcode;
struct palettetype pal;
char psize[80],pval[20];
int i,ht;
int y=10';
/* инициализация графики и локальных переменных */
initgraph(&graphdriver,&gmode,"");
/* получение результата инициализации */
errorcode = graphresult();
if(errorcode != grOk) /* если ошибка */
{
printf("Ошибка :%s\n",grapherrormessage(errorcode));
printf("Для останова нажмите любую клавишу\n");
getch();
exit(1); /* завершение с кодом ошибки */
}
/* получить копию палитры */
getpalette(&pal);
/* преобразовать ее в строку */
sprintf(psize,"Палитра имеет %d изменяемых элементов",pal.size);
/* вывести информацию */
outtextxy(0,y,psize);
if(pal.size != 0)
{
ht = textheight("W");
y += 2*ht;
outtextxy(0,y,"Ниже приведены значения цветов палитры");
y += 2*ht;
for(i=0; i<pal.size, i++,y+=ht)
{
sprintf(pval,"Палитра[%02d]:0x%02X",i,pal.colors[i]);
outtextxy(0,y,pval);
}
}
/* очистка */
getch();
closegraph();
return 0;
}
