━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━图形驱动器(gdriver) 图形模式(gmode)
─────────────────────色调 分辨率
符号常数数值 符号常数数值
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
CGA 1 CGAC0 0 C0 320*200
CGAC1 1 C1
320*200
CGAC2 2 C2 320*200
CGAC3 3 C3 320*200
CGAHI 4 2色640*200
──────────────────────────────
MCGA 2 MCGAC0 0 C0 320*200
MCGAC1 1
C1 320*200
MCGAC2 2 C2 320*200
MCGAC3 3 C3 320*200
MCGAMED 4
2色640*200
MCGAHI 5 2色640*480
──────────────────────────────
EGA 3
EGALO 0 16色640*200
EGAHI 1 16色640*350
──────────────────────────────
EGA64 4 EGA64LO 0 16色640*200
EGA64HI 1 4色640*350
──────────────────────────────
EGAMON 5 EGAMONHI 0 2色640*350
──────────────────────────────
IBM8514 6 IBM8514LO 0 256色640*480
IBM8514HI 1 256色1024*768
──────────────────────────────
HERC 7
HERCMONOHI 0 2色720*348
──────────────────────────────
ATT400 8 ATT400C0
0 C0 320*200
ATT400C1 1 C1 320*200
ATT400C2 2 C2 320*200
ATT400C3 3
C3 320*200
ATT400MED 4 2色320*200
ATT400HI 5 2色320*200
──────────────────────────────
VGA 9 VGALO 0 16色640*200
VGAMED 1
16色640*350
VGAHI 2 16色640*480
──────────────────────────────
PC3270
10 PC3270HI 0 2色720*350
──────────────────────────────
DETECT 0 用于硬件测试
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
使用图形初始化函数设置VGA高分辨率图形模式#include
int
main()
{
int gdriver, gmode;
gdriver=VGA;
gmode=VGAHI;
initgraph(&gdriver,&gmode, "c:\\caic\\bgi");
bar3d(100,100,
300,250, 50,1); /*画一长方体*/
getch();
closegraph();
return 0;
}
有时编程者并不知道所用的图形显示器适配器种类,或者需要将编写的程序用于不同图形驱动器,Turbo C提供了一个自动检测显示器硬件的函数,其调用格式为:
void far detectgraph(int *gdriver,*gmode);其中gdriver和gmode的意义与上面相同。
自动进行硬件测试后进行图形初始化#include
int main()
{
int gdriver, gmode;
detectgraph(&gdriver,&gmode); /*自动测试硬件*/
printf("the graphics
driver is %d, mode is %d\n",
gdriver,gmode); /*输出测试结果*/
getch();
initgraph(&gdriver,&gmode, "c:\\caic\\bgi");
/* 根据测试结果初始化图形*/
bar3d(10,10, 130,250, 20,1);
getch();
closegraph();
return 0;
}
上例程序中先对图形显示器自动检测,然后再用图形初始化函数进行初始化设置,但Turbo
C提供了一种更简单的方法,即用driver=DETECT 语句后再跟initgraph()函数就行了。采用这种方法后,上例可改为:
#include
int main()
{
int gdriver=DETECT, gmode;
initgraph(&gdriver,&gmode, "c:\\caic\\bgi");
bar3d(50,50,
150,30, 50,1);
getch();
closegraph();
return 0;
}
另外,Turbo C
提供了退出图形状态的函数closegraph(),其调用格式为: void far closegraph(void);调用该函数后可退出图形状态而进入文本方式(
Turbo C 默认方式),并释放用于保存图形驱动程序和字体的系统内存。