简介
SetConsoleTextAttribute()函数是一个API设置字体颜色和背景色的函数。参数表中使用两个属性(属性之间用,隔开)。
头文件
#include<Windows.h>
函数原型
BOOL SetConsoleTextAttribute( HANDLE hConsoleOutput, WORD wAttributes );
参数
第一个属性获得句柄(即要设置颜色的地方),常用GetStdHandle()获得句柄。
GetStdHandle(STD_OUTPUT_HANDLE)
第二个属性设置颜色。属性相加是在属性值中间加“|”隔开即可。FOREGROUND_*或BACKGROUND_*。*值为INTENSITY或RED或GREEN或BLUE。
下面是参数可选值的列举
案例:变色输出
#include <iostream> #include <cstdlib> #include <cstdio> #include <ctime> #include <cmath> #include<Windows.h> using namespace std; int main() { cout<<"原色(没有设置字体颜色)"<<endl; SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);//设置三色相加 cout<<"白色(红色绿色蓝色相加)"<<endl; SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED);//设置红色 cout<<"红色(设置的颜色为红色)"<<endl; SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN);//设置绿色 cout<<"绿色(设置的颜色为绿色)"<<endl; SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_BLUE); //设置蓝色 cout<<"蓝色(设置的颜色为蓝色)"<<endl; SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN);//设置红色和绿色相加 cout<<"黄色(红色和绿色相加色)"<<endl; SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_BLUE);//设置红色和蓝色相加 cout<<"粉色(红色和蓝色相加色)"<<endl; SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN|FOREGROUND_BLUE);//设置绿色和蓝色相加 cout<<"青色(绿色和蓝色相加色)"<<endl; SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY);//设置颜色,没有添加颜色,故为原色 cout<<endl; }