
C_Kurs_Lekt / C_III_семестр / 17-2_bgi_graph
.pdfinitgraph |
Инициализирует графическую систему |
|
|
|
||||||
----------------------------------------------------------------- |
||||||||||
Назначение |
Инициализирует графическую систему. |
|
||||||||
Синтаксис |
#include<graphics.h> |
|
|
|
|
|||||
|
void far initgraph(int far *graphdriver, |
|||||||||
|
|
|
|
|
|
int far *graphmode, |
||||
|
|
|
|
|
char far *pathtodriver); |
|||||
|
г=======T======T=========T========T=========¬ |
|||||||||
|
¦ |
DOS |
¦ UNIX ¦ Windows ¦ ANSI C ¦ C++ only¦ |
|||||||
|
¦ |
-------* |
+------ |
|
+--------- |
|
+-------- |
|
+--------- |
¦ |
|
¦ |
¦ |
|
¦ |
|
¦ |
|
¦ |
¦ |
|
|
L=======¦======¦=========¦========¦=========- |
|||||||||
Замечания |
initgraph инициализирует |
графическую |
систему |
|||||||
|
посредством загрузки с диска графического драй- |
|||||||||
|
вера (или подтверждения работоспособности заре- |
|||||||||
|
гистрированного |
драйвера) и перевода системы в |
||||||||
|
графический режим. |
|
|
|
|
|
||||
|
Для запуска графической системы, |
прежде всего, |
||||||||
|
следует вызвать функцию initgraph, которая заг- |
|||||||||
|
рузит графический драйвер и переведет систему в |
|||||||||
|
графический режим. |
Вы можете указать initgraph |
||||||||
|
использование конкретного графического драйвера |
|||||||||
|
и режима, |
либо задать автоматическое распозна- |
||||||||
|
вание |
подсоединенного |
видеоадаптера с выбором |
|||||||
|
соответствующего драйвера в |
процессе |
выполне- |
|||||||
|
ния. |
|
|
|
|
|
|
|
|
|
|
Если для |
initgraph |
задано автоматическое рас- |
|||||||
|
познавание, то для определения графического |
|||||||||
|
драйвера и режима эта функция обращается к |
|||||||||
|
detectgraph. Кроме того |
initgraph |
сбрасывает |
|||||||
|
все графические параметры в их значения по |
|||||||||
|
умолчанию (текущая позиция, палитра, цвет, гра- |
|||||||||
|
фическое |
окно |
и |
т.д.) |
и |
устанавливает |
graphresult в 0.
Обычно initgraph загружает графический драйвер путем выделения памяти для драйвера (с помощью функции _graphgetmem), а затем загружает с диска соответствующий файл .BGI. В качестве альтернативы такой динамической схемы загрузки, вы можете при компоновать файл графического драйвера (или несколько таких файлов) непосредственно к файлу выполняемой программы. (См. описание BGIOBJ в файле UTIL.DOS на дистрибутивных дисках.)
|
Параметр pathtodriver задает маршрут к катало- |
||||||
|
гу, |
|
в котором initgraph будет искать графичес- |
||||
|
кие |
|
драйверы. initgraph вначале просматривает |
||||
|
маршрут, заданный в pathtodriver, а затем, (ес- |
||||||
|
ли |
драйверы не найдены) продолжает поиск в те- |
|||||
|
кущем |
каталоге. |
Таким |
образом, |
если |
||
|
pathtodriver |
равен |
NULL, то |
файлы драйвера |
|||
|
(*.BGI) должны быть в текущем |
каталоге. |
Таким |
||||
|
же |
способом |
1функция settextstyle будет искать |
||||
12 |
файлы (*.CHR), содержащие векторные шрифты.
Параметр *graphdriver представляет собой целое, задающее используемый графический драйвер. Вы можете задавать его значение, используя константы из приведенного ниже перечисляемого типа graphics_drivers, определенного в graphics.h и
представленного в следующей таблице:
Константы графических драйверов
-----------------------------------------------
Константа graphics_drivers Числовое значение
-----------------------------------------------
DETECT |
0 |
(требование |
CGA |
1 |
автоопределения) |
|
||
MCGA |
2 |
|
EGA |
3 |
|
EGA64 |
4 |
|
EGAMONO |
5 |
|
IBM8514 |
6 |
|
HERCMONO |
7 |
|
ATT400 |
8 |
|
VGA |
9 |
|
PC3270 |
10 |
|
-----------------------------------------------
Параметр *graphmode представляет собой целое, задающее начальный графический режим (если
*graphdriver не равен DETECT, *graphmode уста-
навливается функцией initgraph в наивысшее разрешение, допустимого для обнаруженного драйвера). Вы можете задавать значение для
*graphmode, используя константу graphics_modes
перечисляемого типа, определенную в файле graphics.h и представленную в таблице "Графические режимы" (см. дальше описание данной функции). h.
Параметрам graphdriver и graphmode должны быть присвоены значения из таблиц "Константы графических драйверов" и "Графические режимы", в противном случае возможны непредсказуемые ре-
зультаты. Исключение: graphdriver = DETECT.
В нижеприведенной таблице "Графические режимы" перечень элементов C0, C1, C2, C3 столбца "Палитра" соответствует четырем ранее определенным четырехцветным палитрам, доступным для CGA и совместимых систем. В каждой из этих палитр вы можете выбирать цвет фона (элемент #0), но остальные цвета не меняются. Эти палитры более детально описаны в Главе 11 "Видео функции" "Руководства программиста" (в конце главы в разделе "Управление цветом") и сведены в следующую таблицу:
2
-18 grInvalidVersionnum Invalid version |
Некорректный номер |
number |
версии |
-----------------------------------------------------------------
Отметим, |
что |
после |
завершения |
вызова |
|
graphresult |
переменная, |
полученная |
от |
||
graphresult, сбрасывается |
в 0. |
Поэтому следует |
|||
сохранять значение graphresult |
во временной пе- |
||||
ременной |
и затем проверять его. |
|
|
Возвращаемое graphresult возвращает номер текущей графичесзначение кой ошибки, который представляет собой целое в диапазоне от -15 до 0. grapherrormsg возвращает указатель на строку, связанную со значением,
возвращаемым graphresult.
Смотри также detectgraph, drawpoly, fillpoly, floodfill, grapherrormsg, initgraph, pieslice, registerbgidriver, registerbgifont, setallpalette, setcolor, setfillstyle, setgraphmode, setlinestyle, setpalette, settextjustify, settextstyle, setusercharsize, setveiwport, setvisualpage
Пример
#include <graphics.h> #include <stdlib.h> #include <stdio.h> #include <conio.h>
int main(void)
{
/* автоопределение адаптера */
int gdriver = DETECT, gmode, errorcode;
/* инициализация графики и локальных переменных */ initgraph(&gdriver, &gmode, "");
/* чтение результатов инициализации */ errorcode = graphresult();
if (errorcode != grOk) /* если ошибка */
{
printf("Ошибка графики: %s\n", grapherrormsg(errorcode)); printf("Нажмите любую клавишу для останова:");
getch(); |
/* завершение с кодом ошибки */ |
exit(1); |
|
} |
|
/* начертить линию */
line(0, 0, getmaxx(), getmaxy());
/* очистка */ getch(); closegraph(); return 0;
}
11
В следующей таблице приводятся коды ошибок, возвращаемых graphresult. Перечисляемый тип graph_errors определяет ошибки в данной табли-
це. graph_errors определен в graphics.h.
-----------------------------------------------------------------
Код |
Константа |
Сообщение, соответ- |
Значение |
ошибки |
graphics_errors ствующее коду ошибки |
|
-----------------------------------------------------------------
0 |
grOK |
No error |
|
Нет ошибки |
|
-1 |
grNoInitGraph |
(BGI) graphics not |
|
Графика (BGI) не |
|
|
|
installed (use |
|
установлена |
|
|
|
initgraph) |
(используйте initgraph) |
||
-2 |
grNotDetect |
Graphics hardware |
|
Не определена |
|
|
|
not detected |
графическая аппаратура |
||
-3 |
grFileNotFound |
Device driver file |
|
Не найден файл |
|
|
|
not found |
|
|
драйвера |
-4 |
grInvalidDriver |
Invalid device dri- |
|
Некорректный файл |
|
|
|
ver file |
|
|
драйвера |
-5 |
grNoLoadMem |
Not enough memory |
Не |
хватает |
памяти |
|
|
to load driver |
для загрузки драйвера |
||
-6 |
grNoScanMem |
Out of memory in |
|
Выход за пределы |
|
|
|
scan fill |
|
памяти при |
|
|
|
|
|
сканирующем |
|
-7 |
grNoFloadMem |
Out of memory in |
|
заполнении |
|
|
Выход за пределы |
||||
|
|
flood fill |
|
памяти при |
|
|
|
|
|
лавинном заполнении |
|
-8 |
grFontNotFound |
Font file not found |
|
Не найден файл |
|
-9 |
grNoFontMem |
Not enough memory |
|
|
шрифта |
|
Не хватает памяти |
||||
|
|
to load found |
|
для загрузки шрифта |
|
-10 |
grInvalidMode |
Invalid graphics mode |
Недопустимый для |
||
|
|
for select driver |
|
выбранного драйвера |
|
|
|
|
|
графический режим |
|
-11 |
grError |
Graphics error |
|
Графическая ошибка |
|
-12 |
grIOerror |
Graphics I/O error |
|
Ошибка графического |
|
|
|
|
|
ввода/вывода |
|
-13 |
grInvalidFont |
Invalid font file |
|
Некорректный файл |
|
|
|
|
|
|
шрифта |
-14 |
grInvalidFontNum |
Invalid font number |
|
Некорректный номер |
|
|
|
|
|
|
шрифта |
-15 grInvalidDeviceNum |
Invalid device number |
Некорректный номер |
|||
|
|
|
|
устройства |
|
|
|
10 |
|
|
|
Палитры цветов.
-----------------------------------------------------------------
Номер |
1 |
Цвет, соответствующий значению пикселя |
|
палитры |
2 |
3 |
-----------------------------------------------------------------
0 |
светло-зеленый |
светло-красный |
желтый |
1 |
светло-голубой |
светло-малиновый |
белый |
2 |
зеленый |
красный |
коричневый |
3 |
голубой |
малиновый |
светло-серый |
-----------------------------------------------------------------
После вызова |
initgraph |
*graphdriver |
и |
|
*graphmode устанавливаются в |
значения текущего |
|||
графического |
драйвера |
и текущего графического |
||
режима соответственно. |
|
|
|
Графические режимы
-----------------------------------------------------------------
графический |
graphics_modes Значение Колонок |
Палитра Количество |
драйвер |
X строк |
страниц |
-----------------------------------------------------------------
CGA |
CGAC0 |
0 |
|
320 |
X 200 |
C0 |
|
1 |
|
CGAC1 |
1 |
|
320 |
X 200 |
C1 |
|
1 |
|
CGAC2 |
2 |
|
320 |
X 200 |
C2 |
|
1 |
|
CGAC3 |
3 |
|
320 |
X 200 |
C3 |
ЦВЕТА |
1 |
|
CGAHI |
4 |
|
640 |
X 200 |
2 |
1 |
|
MCGA |
MCGAC0 |
0 |
|
320 |
X 200 |
C0 |
|
1 |
|
MCGAC1 |
1 |
|
320 |
X 200 |
C1 |
|
1 |
|
MCGAC2 |
2 |
|
320 |
X 200 |
C2 |
|
1 |
|
MCGAC3 |
3 |
|
320 |
X 200 |
C3 |
ЦВЕТА |
1 |
|
MCGAMED |
4 |
|
640 |
X 200 |
2 |
1 |
|
|
MCGAHI |
5 |
|
640 |
X 480 |
2 |
ЦВЕТА |
1 |
EGA |
EGALO |
0 |
|
640 |
X 200 |
16 |
ЦВЕТОВ |
4 |
|
EGAHI |
1 |
|
640 |
X 350 |
16 |
ЦВЕТОВ |
2 |
EGA64 |
EGA64LO |
0 |
|
640 |
X 200 |
16 |
ЦВЕТОВ |
1 |
|
EGA64HI |
1 |
|
640 |
X 350 |
4 |
ЦВЕТА |
1 |
EGAMONO |
EGAMONOHI 3 |
|
640 |
X 350 |
2 |
ЦВЕТА |
1* |
|
|
EGAMONOHI 3 |
|
640 |
X 350 |
2 |
ЦВЕТА |
2** |
|
HERC |
HERCMONOHI |
|
0 |
720 |
X 348 |
2 |
ЦВЕТА |
2 |
ATT400 |
ATT400C0 |
|
0 |
320 |
X 200 |
C0 |
|
1 |
|
ATT400C1 |
|
1 |
320 |
X 200 |
C1 |
|
1 |
|
ATT400C2 |
|
2 |
320 |
X 200 |
C2 |
|
1 |
|
ATT400C3 |
|
3 |
320 |
X 200 |
C3 |
ЦВЕТА |
1 |
|
ATT400MED |
|
4 |
640 |
X 200 |
2 |
1 |
|
|
ATT400HI |
|
5 |
640 |
X 400 |
2 |
ЦВЕТА |
1 |
VGA |
VGALO |
|
0 |
640 |
X 200 |
16 |
ЦВЕТОВ |
2 |
|
VGAMED |
|
1 |
640 |
X 350 |
16 |
ЦВЕТОВ |
2 |
|
VGAHI |
|
2 |
640 |
X 480 |
16 |
ЦВЕТОВ |
1 |
PC3270 |
PC3270HI |
|
0 |
720 |
X 350 |
2 |
ЦВЕТА |
1 |
IBM8514 |
IBM8514HI |
|
1 |
1024 X 768 |
256 ЦВЕТОВ |
|
||
|
3 |
|
|
|
|
|
|
|
IBM8514LO 0 640 X 480 256 ЦВЕТОВ
*64 K на плате EGAMONO
**256 K на плате EGAMONO
-----------------------------------------------------------------
Возвращаемое initgraph всегда устанавливает внутренний код значение ошибки; причем в случае успешного завершения данный код устанавливается в 0. В случае ошибки
*graphdriver устанавливается в -2, -3, -4 или
-5, а graphresult такие же значение, как представлено ниже:
grNotDetected |
-2 |
Не может определить тип |
|
||
|
|
графической платы |
|
||
grFileNotFound |
-3 |
Не может найти файл драйвера |
|||
grInvalidDriver |
-4 |
Неправильный драйвер |
|
||
grNoLoadMem |
-5 |
Для загрузки |
драйвера |
не |
|
|
|
хватает памяти |
|
||
Смотри также |
|
|
getdefaultpalette, |
||
closegraph, detectgraph, |
|||||
getdrivername, |
getgraphmode, |
getmoderange, |
|||
graphdefaults, |
|
_graphgetmem, |
graphresult, |
||
installuserdriver, |
|
registerbgidriver, |
|||
registerbgifont, |
|
|
|
restorecrtmode, |
setgraphbufsize, setgraphmode.
Пример
#include <graphics.h> #include <stdlib.h> #include <stdio.h> #include <conio.h>
int main(void)
{
/* автоопределение адаптера */
int gdriver = DETECT, gmode, errorcode;
/* инициализация графического режима */ initgraph(&gdriver, &gmode, "");
/* чтение результата инициализации */ errorcode = graphresult();
if (errorcode != grOk) /* если ошибка */
{
printf("Ошибка графики: %s\n", grapherrormsg(errorcode)); printf("Нажмите любую клавишу для останова:");
getch();
exit(1); |
/* завершение с кодом ошибки */ |
} |
|
/* начертить линию */
line(0, 0, getmaxx(), getmaxy());
/* очистка */
4
#include <stdio.h> #include <conio.h>
int main()
{
/* автоопределение адаптера */
int gdriver = DETECT, gmode, errorcode;
/* запись имени драйвера устройства */ char *drivername;
/* инициализация графики и локальных переменных */ initgraph(&gdriver, &gmode, "");
/* чтение результата инициализации */ errorcode = graphresult();
if (errorcode != grOk) /* если ошибка */ |
|
{ |
|
printf("Ошибка графики: %s\n", grapherrormsg(errorcode)); |
|
printf("Нажмите любую клавишу для останова:"); |
|
getch(); |
/* завершение с кодом ошибки */ |
exit(1); |
|
} |
|
setcolor(getmaxcolor()); |
|
/* получить имя используемого драйвера устройства */ |
|
drivername = getdrivername(); |
|
/* центрирование текста на экране */ |
|
settextjustify(CENTER_TEXT, CENTER_TEXT); |
|
/* вывести имя драйвера */ |
|
outtextxy(getmaxx() / 2, getmaxy() / 2, drivername); |
|
/* очистка */ |
|
getch(); |
|
closegraph(); |
|
return 0; |
|
} |
|
graphresult |
Возвращает код ошибки последней неудачной |
|
графической операции |
-----------------------------------------------------------------
Назначение |
Возвращает |
код ошибки последней неудачной гра- |
|||||
|
фической операции. |
|
|
|
|||
Синтаксис |
#include<graphics.h> |
|
|
|
|||
|
int far |
graphresult(void); |
|
|
|||
|
г=======T======T=========T========T=========¬ |
||||||
|
¦ |
DOS |
¦ UNIX ¦ Windows ¦ ANSI C ¦ C++ only¦ |
||||
|
¦ |
-------* |
+------ |
+--------- |
+-------- |
+--------- |
¦ |
|
¦ |
¦ |
¦ |
¦ |
¦ |
¦ |
|
|
L=======¦======¦=========¦========¦=========- |
Замечания graphresult возвращает код ошибки последней графической операции, которая сообщила об ошиб-
ке и устанавливает уровень ошибки в grОk.
9
}
/* Инициализация графики и локальных переменных */ initgraph(&gdriver, &gmode, "");
/* Чтение |
результата инициализации */ |
|
errorcode |
= graphresult(); |
Ошибка */ |
if (errorcode != grOk) /* |
||
{ |
|
|
printf("Ошибка графики: %s\n", grapherrormsg(errorcode)); printf("Нажмите любую клавишу для останова:");
getch();
exit(1); /* Завершение с кодом 1 */
}
midx = getmaxx() / 2; midy = getmaxy() / 2;
/* Выбрать регистрируемый шрифт */ settextstyle(TRIPLEX_FONT, HORIZ_DIR, 4);
/* Вывести какой-нибудь текст */ settextjustify(CENTER_TEXT, CENTER_TEXT); outtextxy(midx, midy, "The TRIPLEX FONT");
/* Восстановление режима */ getch();
closegraph(); return 0;
}
getdrivername Возвращает указатель на строку, содержащую имя текущего графического драйвера
-----------------------------------------------------------------
Назначение |
Возвращает указатель на строку, содержащую имя |
||||||
|
текущего графического драйвера. |
|
|
||||
Синтаксис |
#include<graphics.h> |
|
|
|
|||
|
char *far |
getdrivername(void); |
|
|
|||
|
г=======T======T=========T========T=========¬ |
||||||
|
¦ |
DOS |
¦ |
UNIX ¦ Windows ¦ ANSI C ¦ C++ only¦ |
|||
|
¦ |
-------* |
+ |
------+--------- |
+-------- |
+--------- |
¦ |
|
¦ |
¦ |
¦ |
¦ |
¦ |
¦ |
|
L=======¦======¦=========¦========¦=========- |
|||
Замечания |
После вызова |
функции |
initgraph, |
функция |
|
getdrivername возвращает имя драйвера, который |
|||
|
загружен в данный момент. |
|
|
|
Возвращаемое |
getdrivername возвращает |
указатель |
на строку, |
|
значение |
которая содержит |
имя |
текущего графического |
|
|
драйвера. |
|
|
|
Смотри также |
initgraph |
|
|
|
Пример |
|
|
|
|
#include <graphics.h>
#include <stdlib.h>
8
getch();
closegraph(); return 0;
}
registerbgidriver Связывает загруженный пользователем или встроенный в систему драйвер графической системы с самой графической системой
-----------------------------------------------------------------
Назначение |
Связывает |
загруженный |
пользователем |
или |
|||||||
|
встроенный в систему драйвер графической систе- |
||||||||||
|
мы с самой графической системой. |
|
|
||||||||
Синтаксис |
#include<graphics.h> |
|
|
|
|
|
|||||
|
int registerbgidriver(void (*driver)(void)); |
|
|||||||||
|
г=======T======T=========T========T=========¬ |
||||||||||
|
¦ |
DOS |
¦ UNIX ¦ Windows ¦ ANSI C ¦ C++ only¦ |
||||||||
|
¦-------+------+---------+--------+---------¦ |
||||||||||
|
¦ |
* |
¦ |
|
¦ |
|
¦ |
|
¦ |
|
¦ |
|
L=======¦======¦=========¦========¦=========- |
||||||||||
Замечания |
registerbgidriver |
|
позволяет |
|
пользователю |
||||||
|
загружать файл |
драйвера и "регистрировать" его |
|||||||||
|
в системе. |
Адрес драйвера в памяти |
передается |
||||||||
|
registerbgidriver |
и |
initgraph будет использо- |
||||||||
|
вать этот зарегистрированный драйвер. Зарегист- |
||||||||||
|
рированный пользователем драйвер может быть |
||||||||||
|
загружен с диска в |
|
динамически |
распределяемую |
|||||||
|
память или преобразован в объектный файл (.OBJ) |
||||||||||
|
путем |
использования |
программы |
BINOBJ.EXE |
и |
||||||
|
скомпонован в загрузочный модуль (.EXE). |
|
|||||||||
|
Вызов функции |
registerbgidriver |
информирует |
||||||||
|
графическую систему о том, |
что драйвер, на ко- |
|||||||||
|
торый |
указывает |
driver, |
был включен во время |
|||||||
|
компоновки. Эта функция проверяет, действитель- |
||||||||||
|
но ли |
скомпонованная программа является драйве- |
|||||||||
|
ром, |
и если является, то он регистрируется во |
|||||||||
|
внутренних таблицах. |
Встроенные драйверы более |
|||||||||
|
подробно рассматриваются в UTIL.DOC, имеющийся |
||||||||||
|
в полученных вами дисках. |
|
|
|
|
||||||
|
Указывая имя компонуемого драйвера |
при вызове |
|||||||||
|
registerbgidriver, |
|
вы также сообщаете компиля- |
||||||||
|
тору (и компоновщику) о необходимости компонов- |
||||||||||
|
ки объектного файла с этим именем. |
|
|
||||||||
Возвращаемое |
registerbgidriver |
возвращает отрицательный код |
|||||||||
значение |
ошибки |
графической |
системы, |
если |
указанный |
драйвер некорректен. В противном случае функция registerbgidriver возвращает номер драйвера.
Если вы регистрируете созданный пользователем драйвер, то должны передать результат выполнения функции registerbgidriver функции initgraph, для того чтобы номер драйвера мог
быть использован.
5
См. также |
graphresult, |
initgraph, |
installuserdriver, |
|
registerbgifont |
|
|
Пример |
|
|
|
#include <graphics.h> #include <stdlib.h> #include <stdio.h> #include <conio.h>
int main(void)
{
/* автоопределение адаптера */
int gdriver = DETECT, gmode, errorcode;
/* Регистрация драйвера, который был добавлен в graphics.lib */
errorcode = registerbgidriver(EGAVGA_driver);
/* Сообщение о любых регистрируемых ошибках */ if (errorcode < 0)
{
printf("Ошибка графики: %s\n", grapherrormsg(errorcode)); printf("Нажмите любую клавишу для останова:");
getch();
exit(1); /* завершение с кодом ошибки */
}
/* Инициализация графики и локальных переменных */ initgraph(&gdriver, &gmode, "");
/* Чтение |
результата инициализации */ |
|
errorcode |
= graphresult(); |
Ошибка */ |
if (errorcode != grOk) /* |
||
{ |
|
|
printf("Ошибка графики: %s\n", grapherrormsg(errorcode)); printf("Нажмите любую клавишу для останова:");
getch();
exit(1); /* Завершение с кодом 1 */
}
/* Вычерчивание линии */
line(0, 0, getmaxx(), getmaxy());
/* Восстановление режима */ getch();
closegraph(); return 0;
}
registerbgifont Регистрирует скомпонованные коды шрифта
----------------------------------------------------------------- |
|
Назначение |
Регистрирует скомпонованные коды шрифта. |
Синтаксис |
#include<graphics.h> |
|
int registerbgifont(void (*font)(void)); |
|
6 |
|
г=======T======T=========T========T=========¬ |
|||||||||
|
¦ |
DOS |
¦ UNIX ¦ Windows ¦ ANSI C ¦ C++ only¦ |
|||||||
|
¦-------+------+---------+--------+---------¦ |
|||||||||
|
¦ |
* |
¦ |
|
¦ |
¦ |
|
¦ |
|
¦ |
|
L=======¦======¦=========¦========¦=========- |
|||||||||
Замечания |
Вызов registerbgifont |
информирует |
графическую |
|||||||
|
систему о том, |
|
что шрифт, на который указывает |
|||||||
|
font, был включен во время компоновки. Эта |
|||||||||
|
функция |
проверяет, |
действительно ли скомпоно- |
|||||||
|
ванные коды являются кодами шрифта, |
и если яв- |
||||||||
|
ляются, |
то эти коды регистрируются во внутрен- |
||||||||
|
них таблицах. |
|
Встроенные шрифты более подробно |
|||||||
|
рассматриваются |
в документе UTIL.DOC в BGIOBJ, |
||||||||
|
который можно найти в полученных Вами дисках. |
|||||||||
|
Указывая имя компонуемого шрифта при вызове |
|||||||||
|
registerbgifont, вы также сообщаете компилятору |
|||||||||
|
(и компоновщику) о необходимости компоновки |
|||||||||
|
объектного файла с этим именем. |
|
|
|
||||||
|
Если вы |
регистрируете |
созданный |
пользователем |
||||||
|
шрифт, |
то должны передать результат выполнения |
||||||||
|
функции registerbgifont функции |
settextstyle, |
||||||||
|
для |
того, |
чтобы |
номер |
шрифта |
мог |
быть |
|||
|
использован. |
|
|
|
|
|
|
|
||
Возвращаемое |
registerbgifont |
возвращает |
отрицательный |
код |
||||||
значение |
ошибки |
графической |
системы, если |
указанный |
||||||
|
шрифт некорректен. |
В |
противном |
случае |
||||||
|
registerbgifont возвращает номер |
зарегистриро- |
||||||||
|
ванного шрифта. |
|
|
|
|
|
|
|||
См. также |
graphresult, |
|
initgraph, |
installuserdriver, |
||||||
|
registerbgdriver, settextstyle |
|
|
|
Пример
#include <graphics.h> #include <stdlib.h> #include <stdio.h> #include <conio.h>
int main(void)
{
/* автоопределение адаптера */
int gdriver = DETECT, gmode, errorcode; int midx, midy;
/* Регистр файла шрифта, который был добавлен в graphics.lib */ errorcode = registerbgifont(triplex_font);
/* Сообщение о любых регистрируемых ошибках */ if (errorcode < 0)
{
printf("Ошибка графики: %s\n", grapherrormsg(errorcode)); printf("Нажмите любую клавишу для останова:");
getch();
exit(1); /* завершение с кодом ошибки */
7