- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
Int main(void)
{
struct SREGS segs;
segread(&segs);
printf("Содержимое сегментных регистров: \n");
printf("CS: %X DS: %X\n",segs.cs, segs.ds);
printf("ES: %X SS: %X\n",segs.es, segs.ss);
return 0;
}
setactivepage
Функция Устанавливает активную страницу для графического
вывода.
Синтаксис #include <graphics.h>
void far setactivepage(int page);
Файл, содержащий graphics.h
прототип
Описание setactivepage делает страницу page активной.
Весь последующий графический вывод будет направ-
ляться на эту страницу.
Активной графической страницей может быть та, ко-
торую вы видите на экране, хотя это и не обяза-
тельно. Это зависит от количества графических
страниц в вашей системе. Только графические карты
EGA, VGA и Hercules поддерживают несколько стра-
ниц.
Возвращаемое Нет.
значение
Переносимость Функция уникальна для Turbo C++. Она работает
только на компьютерах IBM PC и совместимых с ни-
ми, оснащенных дисплейными адаптерами, поддержи-
вающими графический режим.
Смотрите также setvisualpage.
Пример:
#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
= 136 =
Int main(void)
{
/* Выбрать драйвер и режим, который он поддерживает */
int graphdriver = EGA, gmode = EGAHI, errorcode;
int x,y,ht;
/* инициализация графики и локальных переменных */
initgraph(&graphdriver,&gmode,"\\tc");
/* получение результата инициализации */
errorcode = graphresult();
if(errorcode != grOk) /* если ошибка */
{
printf("Ошибка :%s\n",grapherrormessage(errorcode));
printf("Для останова нажмите любую клавишу\n");
getch();
exit(1); /* завершение с кодом ошибки */
}
x = getmaxx() / 2;
y = getmaxy() / 2;
ht = textheight("W");
/* выбрать для вывода невидимую в настоящий момент страницу */
setactivepage(1);
/* нарисовать на ней линию */
line(0,0,getmaxx(),getmaxy());
settextjustify(CENTER_TEXT,CENTER_TEXT);
outtextxy(x,y,"This is page #1");
outtextxy(x,y+ht,"Press any key to halt");
/* выбрать для вывода страницу 0 */
setactivepage(0);
/* вывести текст на страницу 0 */
outtextxy(x,y,"This is page #0");
outtextxy(x,y+ht,"Press any key to view page #1");
getch();
/* сделать страницу 1 видимой */
setvisualpage(1);
/* очистка */
getch();
closegraph();
return 0;
}
setallpalette
Функция Изменяет всю палитру красок.
Синтаксис #include <graphics.h>
void far setallpalette(struct palettetype
far *palette);
= 137 =
Файл, содержащий 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
= 138 =
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 и совместимых с ни-
ми, оснащенных дисплейными адаптерами, поддержи-
вающими графический режим.
Смотрите также getpalette, getpalettesize, graphresult,
setbkcolor, setcolor, setpalette.
Пример:
#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
