对于图形模式的屏幕颜色设置,同样分为背景色的设置和前景色的设置。在Turbo C中分别用下面两个函数:
其中color 为图形方式下颜色的规定数值,对EGA,VGA显示器适配器,有关颜色的符号常数及数值见下表所示。
有关屏幕颜色的符号常数表
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 符号常数 数值 含义 符号常数 数值 含义 ────────────────────────────── 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种颜色的一种,但前景色依赖于不同的调色板。共有四种调色板,每种调色板上有四种颜色可供选择。不同调色板所对应的原色见下表。
CGA调色板与颜色值表:
━━━━━━━━━━━━━━━━━━━━━━━ 调色板 颜色值 ─────────────────────── 符号常数 数值 0 1 2 3 ━━━━━━━━━━━━━━━━━━━━━━ C0 0 背景 绿 红 黄 C1 1 背景 青 洋红 白 C2 2 背景 淡绿 淡红 黄 C33 3 背景 淡青 淡洋 红白 ━━━━━━━━━━━━━━━━━━━━━━
清除图形屏幕内容使用清屏函数,其调用格式如下:
voide far cleardevice(void);
有关颜色设置、清屏函数的使用请看例8:
#include<stdio.h> #include<graphics.h> int main() { int gdriver, gmode, i; gdriver=DETECT; initgraph(&gdriver, &gmode, "c:\\caic\\bgi"); /*图形初始化*/ 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也提供了几个获得现行颜色设置情况的函数。