Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Вариант_№20.doc
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
348 Кб
Скачать
☆

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>

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]