不知道大家在TC图形编程的时侯有没有发现这样的一个问题.当使用使用前景颜色的时侯,
发现可用的颜色是15种而不是16种.在graphics.h头文件中,有enum COLORS()中有16种颜色的枚举类型.
第0个是BLACK.但是有时,我们在将BLACK为前景颜色使用时,并没有出黑色的前景.
这是什么原因呢.你有没有感觉到:当setcolor(0)做前景色时,所作出的图的颜色和背景色是一样的.
例如下面的一段程序:
...
setbkcolor(15);
cleardevice();
setcolor(0);/*以黑色为前景色,输出一些字符串*/
settextstyle(2,0,5);
moveto(0,0);
outtext("foreground color");
...
大家可以运行一下,结果是全屏都白色.
再又如下列一段程序:
..
setbkcolor(15);
cleardevice();
setfillstyle(1,1);
bar(0,0,300,100);
setcolor(0);/*以黑色为前景色,输出一些字符串*/
settextstyle(2,0,5);
moveto(0,0);
outtext("foreground color");
...
运行的结果出现的一些白色的字符.但怎么不是黑色,
这是因为setcolor(0)的前景色和背景色是一样的.
我们再来看一下没有使用setbkcolor()函数的程序:
..
setfillstyle(1,15);
bar(0,0,getmaxx(),getmaxy();
setcolor(0);/*以黑色为前景色,输出一些字符串*/
settextstyle(2,0,5);
moveto(0,0);
outtext("foreground color");
...
运行结果竟然是显示黑色的字符串.这是因为图形方式默认的背景色为黑色.
所以,setcolor(0)的前景色就是黑色.
总上所述,我们可以得到这样的结论:
当setbkcolor(color)且color>=1 && color<=15时,前景色种数为15(少了黑色);
当setbkcolor(0)或者不使用setbkcolor()时,前景色种数为16.
在这里需要注意的是,这个结论的前题是你的图形模式为16色.