void SetColor(unsigned short
ForeColor=4,unsigned short BackGroundColor=0) //给参数默认值,使它可以接受0/1/2个参数
{
HANDLE hCon = GetStdHandle(STD_OUTPUT_HANDLE); //本例以输出为例
SetConsoleTextAttribute(hCon,ForeColor|BackGroundColor);
};
int main()
{
SetColor();
std::cout<<"Hello world!"<<endl;
SetColor(40,30);
std::cout<<"Hello world!"<<endl;
return 0;
}
这里的SetColor(40,30);代表什么颜色;那么0~256分别代表什么颜色
谢啦!
但是那其余的一些数字呢,表示的是这些颜色的组合吧,那具体是什么颜色呢
因为定义的只有1 2 4 8 16 32 64 128这几个(为了每个位分开)。
所以你输入的数可以分解成这几个数字的组合,
例如30=16+8+4+2,就是FOREGROUND_GREEN,FOREGROUND_RED,FOREGROUND_INTENSITY,BACKGROUND_BLUE
字体是高亮的 黄色(绿色和红色组合) 背景蓝
40=32+8 就是FOREGROUND_INTENSITY, BACKGROUND_GREEN
就是字体高亮,背景绿
你可以再仔细看看刚刚的百科地址,颜色都是红,绿,蓝三种颜色组合形成的。
非常感谢,我在追问一个问题了就选为满意答案
就是字体颜色与背景颜色会不会再次产生色变,比如背景绿色,字体蓝色,那么显示在屏幕上的会是背景绿字体蓝吗?还是别的什么
比如背景绿色,字体蓝色,那么显示在屏幕上的会是背景绿字体蓝吗?
是的。
不过要是你还选了高亮这个FOREGROUND_INTENSITY
,可能颜色和看到的有一些差别。