注册 登录
编程论坛 C图形专区

setcolor(0)的问题

OmO 发布于 2007-05-04 16:30, 1145 次点击

setcolor(0);
是不是设置颜色跟背景颜色相同,
就是说0这个颜色值不是代表黑,而是代表不赋色?

我的程序里,作业颜色设置为0,结果"Yes"的颜色随背景色变化而变化。。。。。。

/*---------画一个立体Yes按钮-------*/

#include <stdio.h>
#include <graphics.h>

void bottom_ok(int x,int y);
void init_graph(void);

void main()
{
int i;

init_graph();
for (i=0; i<16; i++) /*切换背景色*/
{
setbkcolor(i);
bottom_ok(140,140);
getch();
}
closegraph();
}

void init_graph(void)
{
int gdriver=DETECT, gmode;
initgraph(&gdriver, &gmode, "c:\\turboc2");
}


void bottom_ok(int x,int y)
{
setcolor(15); /*以白色画左边和上边线*/
line(x,y,x+73,y);
line(x,y,x,y+21);
/*以浅灰色画按钮主体*/
setfillstyle(1,7);
bar(x+1,y+1,x+72,y+20);

setcolor(8); /*以深灰色画下边和右边线*/
line(x+1,y+21,x+73,y+21);
line(x+73,y+1,x+73,y+20);

setcolor(0); /*设置字体颜色为黑色*/
outtextxy(x+25,y+8,"OK");
}

1 回复
#2
ba_wang_mao2007-05-05 10:22
参见conio.h中的枚举定义
enum COLORS {
BLACK, // =0 /* dark colors */
BLUE, //=1
GREEN, //=2
CYAN, //=3
RED,
MAGENTA,
BROWN,
LIGHTGRAY,
DARKGRAY, /* light colors */
LIGHTBLUE,
LIGHTGREEN,
LIGHTCYAN,
LIGHTRED,
LIGHTMAGENTA,
YELLOW, //=14
WHITE //=15
};
BLACK = 0 代表黑色
BLUE=1 代表兰色
1