对于图形模式的屏幕颜色设置, 同样分为背景色的设置和前景色的设置。在
Turbo C中分别用下面两个函数。
设置背景色: void far setbkcolor( int color);
设置作图色: void far setcolor(int color);
其中color 为图形方式下颜色的规定数值, 对EGA, VGA显示器适配器, 有关
颜色的符号常数及数值见下表所示。
表3 有关屏幕颜色的符号常数表
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
符号常数 数值 含义 符号常数 数值 含义
───────────────────────────────────
BLACK 0 黑色 DARKGRAY 8 深灰
BLUE 1 兰色 LIGHTBLUE 9 深兰
GREEN 2 绿色 LIGHTGREEN 10 淡绿
CYAN 3 青色 LIGHTCYAN 11 淡青
RED 4 红色 LIGHTRED 12 淡红
MAGENTA 5 洋红 LIGHTMAGENTA 13 淡洋红
BROWN 6 棕色 YELLOW 14 黄色
LIGHTGRAY 7 淡灰 WHITE 15 白色
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
对于CGA适配器, 背景色可以为表3中16种颜色的一种, 但前景色依赖于不同
的调色板。共有四种调色板, 每种调色板上有四种颜色可供选择。不同调色板所
对应的原色见表4。
表4 CGA调色板与颜色值表
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
调色板 颜色值
─────────── ──────────────────
符号常数 数值 0 1 2 3
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
C0 0 背景 绿 红 黄
C1 1 背景 青 洋红 白
C2 2 背景 淡绿 淡红 黄
C3 3 背景 淡青 淡洋红 白
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
清除图形屏幕内容使用清屏函数, 其调用格式如下:
voide far cleardevice(void);
有关颜色设置、清屏函数的使用请看例8。
例8:
#include<stdio.h>
#include<graphics.h>
int main()
{
int gdriver, gmode, i;
gdriver=DETECT;
registerbgidriver(EGAVGA_DRIVER);/*建立独立图形运行程序*/
initgraph(&gdriver, &gmode", "");/*图形初始化*/
setbkcolor(0); /*设置图形背景*/
cleardevice();
for(i=0; i<=15; i++)
{
setcolor(i); /*设置不同作图色*/
circle(320, 240, 20+i*10); /*画半径不同的圆*/
delay(100); /*延迟100毫秒*/
}
for(i=0; i<=15; i++)
{
setbkcolor(i); /*设置不同背景色*/
cleardevice();
circle(320, 240, 20+i*10);
delay(100);
}
closegraph();
return 0;
}
另外, TURBO C也提供了几个获得现行颜色设置情况的函数。
int far getbkcolor(void); 返回现行背景颜色值。
int far getcolor(void); 返回现行作图颜色值。
int far getmaxcolor(void); 返回最高可用的颜色值。