- •Void writechar(char ch)
- •Void far getarccoords(struct arccoordstype
- •Int far getbkcolor(void);
- •Itoa(bkcolor,bkname,10);
- •Int getc(file *stream);
- •Int main(void)
- •Int getchar(void);
- •Int main(void)
- •Int getche(void);
- •Itoa(color,colname,10);
- •Int getcurdir(int drive, char * direc);
- •Int da_year; /* текущий год */
- •Int main(void)
- •Void getdfree(unsigned char drive,
- •Int getdisk(void);
- •Int main(void)
- •If(!flag)
- •Void getfatd(struct fatinfo *dtable);
- •Void far getfillpattern(char far *pattern);
- •Int getftime(int handle, struct ftime * ftimep);
- •Int far getgraphmode(void)
- •Initgraph.
- •Void far getimage(int left, int top, int
- •0X3333 или 0x0f0f. Если же параметр linestyle в
- •Int far getmaxcolor(void);
- •Int far getmaxx(void);
- •Int far getmaxy(void);
- •Void far getmoderange(int graphdriver, int
- •Void far getpalette(struct palettetype far
- •Int far getpalettesize(void);
- •Int main(void)
- •Int main(void)
- •3.X можно использовать глобальную переменную
- •Void gettextinfo(struct text_info *r);
- •Int main(void)
- •Void var gettexsettings(struct
- •Void gettime(struct time * timep);
- •Int main(void)
- •Int far getx(void);
- •Int far gety(void);
- •Void far graphdefaults(void);
- •Void far _graphfreemem(void var
- •Void far _graphgetmem(unsigned size);
- •0 GrOk нет ошибок
- •0, Если необходимо игнорировать ошибку, 1, если
- •Void hardresume(int rescode);
- •0, Если необходимо игнорировать ошибку, 1, если
- •0, Если необходимо игнорировать ошибку, 1, если
- •Int heapcheck(void);
- •Int heapchecknode(void *node);
- •Int heapfillfree(unsigned int fillvalue);
- •Int heapwalk(struct heapinfo *hi);
- •Void highvideo(void);
- •Int main(void)
- •Initgraph загружает графический драйвер и
- •Initgraph как часть его драйвероопределяю-
Int far getgraphmode(void)
Файл, содержащий graphics.h
прототип
Описание Ваша программа должна успешно выполнить
вызов initgraph до вызова getgraphmode. Перечис-
ляемый тип graphics_mode, определенный в
graphics.h задает имена встроенных графических
режимов. Для ознакомления с таблицей,отображающей
эти значения, следует обратиться к описанию
Initgraph.
Возвращаемое getgraphmode возвращает графический режим,
значение установленный integraph или setgraphmode.
Переносимость Функция уникальна для Turbo C++. Она работает
только на компьютерах IBM PC и совместимых с ни-
ми, оснащенных дисплейными адаптерами, поддержи-
-190-
вающими графический режим.
Смотрите также getmoderange, restorecrtmode, setgraphmode.
Пример:
#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
int main(void)
{
/* Запрос автоопределения */
int graphdriver = DETECT, gmode, errorcode;
int midx,midy,mode;
char numname[80],modename[80];
/* инициализация графики и локальных переменных */
initgraph(&graphdriver,&gmode,"");
/* получение результата инициализации */
errorcode = graphresult();
if(errorcode != grOk) /* если ошибка */
{
printf("Ошибка :%s\n",grapherrormessage(errorcode));
printf("Для останова нажмите любую клавишу\n");
getch();
exit(1); /* завершение с кодом ошибки */
}
midx = getmaxx()/2;
midy = getmaxy()/2;
/* получить код режима */
mode = getgraphmode();
sprintf(numname,"Номер режима: %d",mode);
sprintf(modename,"Текущий графический режим: %s\n",getmodename(mode));
/* вывести информацию */
settextjustify(CENTER_TEXT,CENTER_TEXT);
outtextxy(midx,midy,numname);
outtextxy(midx,midy+2*textheight("W"),modename);
/* очистка */
getch();
closegraph();
return 0;
}
getimage
Функция Запоминает в битовый образ некоторой области эк-
рана.
Синтаксис #include <graphics.h>
Void far getimage(int left, int top, int
right,int bottom, void
far *bitmap);
Файл, содержащий graphics.h
прототип
Описание getimage копирует образ c экрана в память.
left, top, right и bottom определяют область эк-
-191-
рана прямоугольной формы, которая будет скопиро-
вана. bitmap указывает на область в памяти, куда
записывается битовый образ. Первые два слова этой
области задают ширину и высоту прямоугольника,
оставшиеся определяют сам образ.
Возвращаемое Нет.
значение
Переносимость Функция уникальна для Turbo C++. Она работает
только на компьютерах IBM PC и совместимых с ни-
ми, оснащенных дисплейными адаптерами, поддержи-
вающими графический режим.
Смотрите также imagesize, putimage, putpixel.
Пример:
#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include<alloc.h>
void save_screen(void far *buf[4]);
void restore_screen(void far *buf[4]);
int maxx,maxy;
int main(void)
{
int graphdriver = DETECT, gmode, errorcode;
void far *ptr[4];
/* автоматическое определение драйвера и режима */
initgraph(&graphdriver,&gmode,"");
/* получение результата инициализации */
errorcode = graphresult();
if(errorcode != grOk) /* если ошибка */
{
printf("Ошибка :%s\n",grapherrormessage(errorcode));
printf("Для останова нажмите любую клавишу\n");
getch();
exit(1); /* завершение с кодом ошибки */
}
maxx = getmaxx();
maxy = getmaxy();
/* нарисовать на экране изображение */
rectangle(0,0,maxx,maxy);
line(0,0,maxx,maxy);
line(0,maxx,maxy,0)
save_screen(ptr); /* сохранить экран */
getch(); /* пауза */
cleardevice(); /* обнуление экрана */
restore_screen(ptr); /* восстановление экрана */
getch(); /* пауза */
closegraph();
return 0;
}
-192-
void save_screen(void far *buf[4])
{
unsigned size;
int ystart=0,yend,yincr,block;
yincr = (maxy+1)/4;
yend = yincr;
size = imagesize(0,ystart,maxx,yend); /* получить размер изо-
браженияв байтах */
for(block = 0; block<=3; block++)
{
if(buf[block] = farmalloc(size))== NULL)
{
closegraph();
printf("Ошибка! Не хватает памяти для сохранения экрана\n");
exit(1);
}
getimage(0,ystart,maxx,yend,buf[block]);
ystart = yend+1;
yend += yincr+1;
}
}
void restore_screen(void far *buf[4]);
{
int ystart=0,yend,yincr,block;
yincr = (maxx+1)/4;
yend = yincr;
for(block=0;block<=3;block++)
{
putimage(0,ystart,buf[block],COPY_PUT);
farfree(buf[block]);
ystart = yend+1;
yend += yincr+1;
}
}
getlinesttings
Функция Получает текущий цвет линии, шаблон и толщину.
Синтаксис #include <graphics.h>
void far getlinesettings(struct linesettingstype
far *lineinfo);
Файл, содержащий graphics.h
прототип
Описание getlinesettings заполняет структуру linesettings,
на которую указывает параметр lineinfo информаци-
ей, о текущем типе линий, толщине и шаблоне.
Структура linesettingstype определена в
graphics.h следующим образом:
struct linesettingstype{
int linestyle;
unsigned upattern;
int thickness;
};
linestyle определяет тип линий, который будет ис-
пользоваться ( непрерывная, пунктир, штрихпунк-
-193-
тир, штриховая). Перечисляемый тип line_styles,
определенный в graphics.h, дает символические
имена этим операциям:
-------------------------------------------
Название Знач. Описание
-------------------------------------------
SOLID_LINE 0 сплошная
DOTTED_LINE 1 пунктир
CENTER_LINE 2 штрихпунктир
DASHED_LINE 3 штриховая
USERBIT_LINE 4 тип линии, заданный
пользователем
-------------------------------------------
thickness определяет, будут ли последующие линии
тонкими или толстыми.
-------------------------------------------
Название Знач. Описание
-------------------------------------------
NORM_WIDTH 1 толшина в 1 пиксель
THICK_WIDTH 3 толщина в 3 пикселя
--------------------------------------------
upattern -это 16-битный шаблон, который использу-
ется, только когда linestyle равен USERBIT_LINE
(4). В этом случае каждый бит в шаблоне, установ-
ленный в 1, соответствует пикселю на линии в те-
кущем цвете. Например, сплошной линии соответстс-
вует upattern равный 0xFFFF ( рисуются все пиксе-
ли), а пунктиру соответствует upattern, равный