一、确定显示卡
二、选择显示模式
三、图形显示
一、确定显示卡
二、选择显示模式
三、图形显示
20. detectgraph() 显示卡检测函数
功能: 函数detectgraph()在计算机上安装有显示卡的情况下,测定其显示卡的类型。
用法: 此函数调用方式为void detectgraph(int *driver,int *mode);
说明: 函数把driver所指向的整型变量设置为图形驱动程序的代码,把mode所指向的整型变量设置为显示卡支持的最高有效模式(即该显示卡能支持的最高分辨率)。
返回值: 返回适合于该显示卡的图形驱动程序的代码(也称等价值),并存放在driver指向的变量中。若计算机系统中无图形硬件,则由driver指向的变量设置为-2。
例: 检测计算机是否装有显示卡:
21. initgraph() 图形初始化函数
功能: 函数initgraph()用于初始化图形系统,把适合的图形驱动程序装入内存,设置图形函数所用的显示模式。
用法: 该函数调用方式为void initgraph(int *driver,int *mode,char *path);
说明: 1) 函数中参数driver指向图形驱动程序(或者等价值)。
宏
------------------------------
DETECT
CGA
MCGA
EGA
EGA64
EGAMONO
IBM8514
HERCMONO
ATT400
VGA
PC3270
--------------------------------
注:在现在的计算机中,上表中的许多显示卡已经过时,不再使用。
这样就不必担心图形驱动程序的准确名字,而只要用其等价值即可,若使用detect(即等价值0)时,initgraph()函数自动检测当前计算机中装有的显示卡类型,并且选用最大分辨率的显示模式。
2)参数mode指向显示模式或用等价值(风表1-5),mode所指的值必须是有效模式之一。
3)参数path指向图形驱动程序所在的路径,例如path="C:\TC\BG1".若没有指定路径,就在当前目录下寻找。
返回值: 无
例: 调用initgraph()自动检测硬件图形系统,并选用最大分辨率显示模式。
22. getdrivername() 获取图形驱动程序名的指针
功能: 函数getdrivername()返回指向当前图形驱动程序名的指针。
用法: 此函数调用方式为char *getdrivername(void);
说明: 本函数可以用来检测显示卡,但只能在initgraph()设置图形驱动程序和显示模式之后调用。
返回值: 返回一指针,指向含有当前图形驱动程序名的字符串。
例: 显示当前图形驱动程序名:
23. getgraphmode() 获取图形模式函数
功能: 函数getgrapgmode()返回当前图形模式。
用法: 该函数调用方式为int getgraphmode(void);
说明: getgraphmode()函数无参数调用。
返回值: 返回initgraph()或setgraphmode()所设置的当前图形模式值。
例: 显示当前图形模式的代码:
24. getmoderange()获取模式值范围函数
功能: 函数getmoderange()返回指定的图形驱动程序能够支持的最低和最高模式值。
用法: 函数调用方式为 void getmoderange(int driver,int *lowmode,int himode);
说明: 参数driver是用来调用此函数时,指定图形驱动程序等价值或宏名。
返回值: 返回的最小和最大有效值存放在参数指针lowmode和himode分别指向的整型变量中。
例: 显示当前图形硬件的显示模式的范围值:
25. getmaxmode()获取最大显示模式函数
功能: 函数getmaxmode()返回当前加载的图形驱动程序所支持的最大有效显示模式。
用法: 函数调用方式为int getmaxmode(void);
说明:本函数无参数调用,返回图形驱动程序所支持的最大显示模式,所有图形驱动程序支持从0到getmaxmode()函数返回值中的任一整 数值(对应的显示模式)。
返回值:返回图形驱动程序所支持的显示模式最大值。
例: 显示当前最大显示模式:
26. getmodename()获取显示模式名函数
功能: 函数getmodename()可获取当前图形驱动程序支持的指定显示模式的名字。
用法: 此函数调用方式为char *getmodename(int modecode);
说明: 参数modecode为整型值。用以指定一显示模式值调用该函数。
返回值:
例: 显示当前最大显示模式名:
#include<graphics.h>
#include<stdio.h>
void main()
{
}
27. graphdefaults()图形设置复位缺省值函数
功能: 函数grpahdefaults()把所有图形设置复位为它们的缺省值,这包括把图形视口复位为全屏幕;当前位置定位在0,0;调色板、背景色和绘图色都被复位;填充颜色、填 充图样、文本文字和排齐方式都返回到它位的缺省值。
用法: 此函数调用方式为void graphdefaults(void);
说明: 该函数无参数调用。
返回值: 无
例: 将图形系统恢复为其缺省值:
28. setgraphmode() 设置图形模式函数
用法: 该函数调用方式为void setgraphmode(int mode);
说明: 参数mode调用时为指定的模式值。
返回值: 无
例: 把VGA图形卡设置为VGAMED模式:
29. restorecrtmode() 恢复文本显示模式函数
功能: 函数restrecrtmode()将显示模式恢复到调用initgraph()时检测出的初始文本模式。
用法: 这个函数调用方式为void restorecrtmode(void);
说明: 函数restorecrtmode()和setgraphmode()函数一起使用,可以实现文本与图形显示之间的切换。
返回值: 无
例: 恢复显示模式为初始文本模式:
30. graphresult() 图形操作结果函数
功能: 函数graphresult()函数返回最后一次图形操作的代码。
用法: 此函数调用方式为int graphresult(void);
说明: C为图形设置了代码,它们是从-15到0的整数值。其含义见表1-6。
图形操作信息名称 | 代码 | 含 |
grInvalidDeviceNum | -14 | 无效设备号 |
grInvalidFont | -13 | 无效字体文件 |
grIOerror | -12 | 输入输出错误 |
grError | -11 | 一般图形错误 |
grInvalidMode | -10 |
无效的图形模式
|
grNoFontMem | -9 | 没有足够内存用于装字体文件 |
grFontNotFound | -8 | 没有找到字体文件 |
grNoFloadMem | -7 | Flood填 充内存不足 |
grNoScanMem | -6 | Scan填 充内存不足 |
grNoLoadMem | -5 | 没有足够内存装入图形驱动程序 |
grInvalidDriver | -4 | 无效图形驱动程序 |
grFileNoFound | -3 | 没有找到图形驱动文件 |
grNoDetected | -2 | 没有检测到图形硬件 |
grNoInitGraph | -1 | 没有图形初始化 |
grOK | 0 | 成功 |
这个函数对应的头部文件是graphics.h
返回值: 返回最后一次图形操作结果相应的代码。
例: 调用graphresult()函数的实例见下面grapherrormsg()函数的例子。
31. grpaherrormsg() 图形错误信息函数
功能: 函数grapherrormsg()返回指向出错代码相应的错误信息字符串的指针。
用法: 此函数调用方式为char *grapherrormsg(int errcode);
说明: 参数errcode值,即出错代码由调用函数graphresult()获得。这里所有出错代码及相应的错误信息如表1-6中所述。
返回值: 返回一个指向该出错代码相应的错误信息字符串的指针。
例: 用文字形式显示有关出错代码相应的错误信息:
32. setgraphbufsize()设置图形缓冲区大小函数
功能: 函数setgraphbufsize()用来设置有的图形函数(如floodfill等)所要用到的内存缓冲区大小。
用法: 函数调用方式为unsigned setgraphbufsize(unsigned bufsize);
说明: 这里无符号参数bufsize为所设置的缓冲区大小。
返回值: 返回先前定义的图形缓冲区字节数。
例: 调用此函数设置图形缓冲区为8KB字节:
33. setactivepage() 设置可输出显示页函数
功能: 函数setactiveage()设置用作图形输出的显示页。
用法: 这个函数调用方式为void setactivepage(int pagenum);
说明: 参数pagenum为选择的显示页号,如果调用成功,那么后续图形输出就写到选定的输出页上。缺省时是以0页作为当前输出页。该函数只在图形驱动程序及其显示模式支持多个显示页时才起作用。
返回值: 无
例: 设置1页为输出显示页:
34. setvisualpage() 设置可见显示页数
功能: 函数setvisualpage()设置屏幕上可见的显示页。
用法: 函数调用方式为void setvisualpage(int pagenum);
说明: 参数pagenum为设置的显示页号。缺省时是以0页作为当前可见页。调用这个函数和调用setactivepage()一样,仅在图形驱动程序及其显示模式支持多个显示页时才有效。用户可以用系统所支持的任何显示页,在它们之间切换,当然一次只能有一个显示页在屏幕上可见,有时需要在一页上建立后备图形葨图像,它在当时不显示,一旦需要时,可以马上切换到该页,如要实现动画效果,只需切换显示页号即可。用setvisualpage()函数选 定实际显示在屏幕上的可见页,用setactivepage()函数选择当前图形输出页,从而实现图形页之间的显示切换,通常这两个函数都是缺省的,这时输出页就是可见页。若不绘制动画就不需要用到这两个函数。
返回值: 无
例: 设置可见页为第1页:
35. closegraph()关闭图形模式函数
功能: 函数closegraph()将系统图形模式关闭,,复位到initgraph()初始文本模式,并且释放图形驱动程序、字体和内部缓冲区所占用的系统内存。
用法: 这个函数调用方式为void closegraph(void);
说明: 当用户的程序既用到图形输出又用到非图形输出时,应该调用此函数。特别是程序多次调用initgraph()函数的情况,要相应地调用closegraph函数,释放调用initgraph()所占用的内存,否则内存很快就满了,程序无法运行,如果程序结束,也可以用restorecrtmode()函数代替该函数,这样任何分配的内存都将释放。
返回值: 无
例: 关闭图形系统: