Функция Определяет графический драйвер и графический режим
при проверке аппаратного обеспечения.
Синтаксис #include
void far detectgraph (int far*graphdriver,
int far *graphmode);
Файл, содержащий graphics.h
прототип
Описание detectgraph определяет ваш системный гра-
фический адаптер и выбирает режим, который обеспе-
чивает самое высокое разрешение для этого адапте-
ра. Если графический адаптер не обнаружен,
*graphdriver устанавливается в -2 и graphresult
будет также возвращать -2(grNotDetected).
*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 устанавливается в наивыс-
шее разрешение, допустимое для данного драйвера)
Вы можете задать значение *graphmode, используя
константу перечисляемого типа graphics_modes, оп-
ределенную в graphics.h и показанную в следующей
таблице:
--------------------------------------------------------------
Графическ. graphics Знач. Колонок Палитра Страниц
драйвер _modes * столбцов
-------------------------------------------------------------
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
EGA- EGAMONOHI 3 640 x 350 2 цвета 1*
MONO EGAMONOHI 3 640 x 350 2 цвета 2**
HERC HERCMONOHI 0 720 x 348 2 цвета 2
AT400 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 380 16 цветов 1
PC3270 PC3270HI 0 720 x 350 2 цвета 1
IBM8514 IBM8514HI 0 640 x 480 256 цветов
IBM8514LO 0 1024 x 768 256 цветов
* 64К на карте EGAMONO
** 256К на карте EGAMONO
--------------------------------------------------------------
Замечание. Основная причина вызова непосредствен-
но detectgraph состоит в переопределении графи-
ческого режима , который detectgraph рекомендовал
initgraph.
Возвращаемое Нет.
значение
Переносимость Функция уникальна для Turbo C++. Эта функция
пригодна только для компьютеров IBM PC и совмес-
тимых с ними, оснащенных дисплейными адаптерами,
поддерживающими графический режим.
Смотрите также graphresultinitgraph
Пример:
#include
#include
#include
#include
/* Имена различных графических адаптеров */
char *gname[] = { "требуется определение",
"CGA",
"EGA",
"EGA с 64K",
"монохромный EGA",
"IBM 8514",
"Hercules монохромный",
"AT&T 6300 PC",
"VGA",
"IBM 3270" };
int main(void)
{
/* используется для определения графического адаптера */
int graphdriver, gmode, errorcode;
/* определение адаптера */
detectgraph(&graphdriver,&gmode,"");
/* получение результата инициализации */
errorcode = graphresult();
if(errorcode != grOk) /* если ошибка */
{
printf("Ошибка :%s\n",grapherrormsg(errorcode));
printf("Для останова нажмите любую клавишу\n");
getch();
exit(1); /* завершение с кодом ошибки */
}
/* вывести полученную информацию */
clrscr();
printf("Установлена плата: %s",gname[graphdriver]);
printf("Для завершения нажмите любую клавишу...");
getch();
return 0;
}