分享
 
 
 

C语言图形编程(二、图形显示)

王朝c/c++·作者佚名  2008-06-01
窄屏简体版  字體: |||超大  

一、确定显示卡

二、选择显示模式

三、图形显示

20. detectgraph() 显示卡检测函数

21. initgraph() 图形初始化函数

22. getdrivername() 获取图形驱动程序名的指针

23. getgraphmode() 获取图形模式函数

24. getmoderange()获取模式值范围函数

25. getmaxmode()获取最大显示模式函数

26. getmodename()获取显示模式名函数

27. graphdefaults()图形设置复位缺省值函数

28. setgraphmode() 设置图形模式函数

29. restorecrtmode() 恢复文本显示模式函数

30. graphresult() 图形操作结果函数

31. grpaherrormsg() 图形错误信息函数

32. setgraphbufsize()设置图形缓冲区大小函数

33. setactivepage() 设置可输出显示页函数

34. setvisualpage() 设置可见显示页数

35. closegraph()关闭图形模式函数

一、确定显示卡

微机系统显示部分由显示器(monitor)和显示卡(adapter)两部分组成。显示器是独立于主机的一种外部设备,显示卡或称显示适配卡,也有的称图形卡,是插在主机上的一块电路板。但也有的显示卡与主机板设计在一起。显示卡包括寄存器组、存储器和控制电路三大部分。其中存储器又包括显示RAM和ROM BIOS两部分,微机对显示屏幕的所有操作都是通过显示卡来实现的。因此要进行图形显示 ,首先要确定计算机上安装的是何种显示卡。一种方法是询问计算机或终端使用者,确定将要使用的显示卡类型。这种方法很难,因为甚至专业程序员也不总是能确定他正在使用什么样的硬件。另一种方法是用软件查询硬件以识别当前的配置。假如有一些识别硬件的标准,这就很简单了。在Borland C中对现在所使用的各种显示卡提供了支持,这只要调用detectgraph()函数就可以了,该函数为程序员确定计算机上使用的显示卡类型。

二、选择显示模式

显示模式是指显示卡支持的分辨率与相应的颜色配置。每台计算机都配置了某种类型显示卡,可以为该显示卡指定显示模式。

三、图形显示

进行图形显示首先要确定显示卡,然后选择其显示模式。这些工作都可以调用图形功能函数来完成,其实就是把适合于显示卡的图形驱动程序装入内存。假如图形驱动程序未装入内存,那么图形函数就不能操作。

20. detectgraph() 显示卡检测函数

功能: 函数detectgraph()在计算机上安装有显示卡的情况下,测定其显示卡的类型。

用法: 此函数调用方式为void detectgraph(int *driver,int *mode);

说明: 函数把driver所指向的整型变量设置为图形驱动程序的代码,把mode所指向的整型变量设置为显示卡支持的最高有效模式(即该显示卡能支持的最高分辨率)。

该函数相应的头文件为graphics.h

返回值: 返回适合于该显示卡的图形驱动程序的代码(也称等价值),并存放在driver指向的变量中。若计算机系统中无图形硬件,则由driver指向的变量设置为-2。

例: 检测计算机是否装有显示卡:

int driver,mode;

detectgraph(&driver,&mode);

if(driver==-2)

{

printf("no graphics adapter in the computer");

exit(1);

}

21. initgraph() 图形初始化函数

功能: 函数initgraph()用于初始化图形系统,把适合的图形驱动程序装入内存,设置图形函数所用的显示模式。

用法: 该函数调用方式为void initgraph(int *driver,int *mode,char *path);

说明: 1) 函数中参数driver指向图形驱动程序(或者等价值)。

在头部文件graphics.h中定义了图形驱动程序的宏名与其等价 ,如下:

宏 名 等价值

------------------------------

DETECT 0

CGA 1

MCGA 2

EGA 3

EGA64 4

EGAMONO 5

IBM8514 6

HERCMONO 7

ATT400 8

VGA 9

PC3270 10

--------------------------------

注:在现在的计算机中,上表中的许多显示卡已经过时,不再使用。

这样就不必担心图形驱动程序的准确名字,而只要用其等价值即可,若使用detect(即等价值0)时,initgraph()函数自动检测当前计算机中装有的显示卡类型,并且选用最大分辨率的显示模式。

2)参数mode指向显示模式或用等价值(风表1-5),mode所指的值必须是有效模式之一。

3)参数path指向图形驱动程序所在的路径,例如path="C:\TC\BG1".若没有指定路径,就在当前目录下寻找。

一般图形驱动程序包含在.BGI文件中,这些文件是系统可以得到的。这个函数对应的头文件是graphics.h。

返回值: 无

例: 调用initgraph()自动检测硬件图形系统,并选用最大分辨率显示模式。

init drver,mode;

driver=DETECT;

mode=0;

initgraph(&driver,&mode,"");

22. getdrivername() 获取图形驱动程序名的指针

功能: 函数getdrivername()返回指向当前图形驱动程序名的指针。

用法: 此函数调用方式为char *getdrivername(void);

说明: 本函数可以用来检测显示卡,但只能在initgraph()设置图形驱动程序和显示模式之后调用。

该函数相应的头文件为graphics.h

返回值: 返回一指针,指向含有当前图形驱动程序名的字符串。

例: 显示当前图形驱动程序名:

#include<graphics.h>

#include<stdio.h>

void main()

{

int graphdriver=DETECT,graphmode;

char *s;

initgraph(&graphdriver,&graphmode,"");

s=getdrivername();

outtext("Using driver:");

outtext(s);

getch();

closegraph();

}

23. getgraphmode() 获取图形模式函数

功能: 函数getgrapgmode()返回当前图形模式。

用法: 该函数调用方式为int getgraphmode(void);

说明: getgraphmode()函数无参数调用。

这个函数对应的头文件是graphics.h

返回值: 返回initgraph()或setgraphmode()所设置的当前图形模式值。

例: 显示当前图形模式的代码:

printf("graphics mode is %d",getgraphmode());

24. getmoderange()获取模式值范围函数

功能: 函数getmoderange()返回指定的图形驱动程序能够支持的最低和最高模式值。

用法: 函数调用方式为 void

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有