C++更改控制台(SetConsoleTextAttribute)的输出的颜色

如果讲解不错的话,可以点赞

C++的控制台输出是长这样的:
C++更改控制台(SetConsoleTextAttribute)的输出的颜色_第1张图片
这肯定不够美观,可以通过修改某一部分的输出颜色来调整

修改字符串输出的颜色,我们需要用到头文件

#include 

其中有一个函数是这样定义的:

WINBASEAPI WINBOOL WINAPI SetConsoleTextAttribute(HANDLE hConsoleOutput,WORD wAttributes);

该函数就是可以做到修改控制台的字符串的颜色:

hConsoleOutput:HANDLE 类型,可以填写 GetStdHandle(STD_OUTPUT_HANDLE) ,即为输出句柄

wAttributes:填写颜色的对应值,为 int

由于函数名字长度较长,我们往往可以将其封装在函数中:

void colour(int x)
{
	HANDLE h=GetStdHandle(STD_OUTPUT_HANDLE);
	SetConsoleTextAttribute(h,x);	
} 

我们也可以直接将 GetStdHandle(STD_OUTPUT_HANDLE) 直接填入 hConsoleOutput

给大家列举出控制台 黑色背景 (注意,只针对黑色背景)常用的值(x):

颜色
0 透明无色
1 蓝色
2 深绿色
3 稍浅的蓝色
4 红色
5 深紫色
6 土黄色
7 白色(默认颜色)
8 灰色
9 更浅的蓝色
10 浅绿色
11 最浅的蓝色
12 粉红色
13 紫色
14 肉色
15 亮白色

至于其它的背景,我们只需如下步骤即可:

#include 
#include 
void colour(int x)
{
	HANDLE h=GetStdHandle(STD_OUTPUT_HANDLE);
	SetConsoleTextAttribute(h,x);	
} 
int main()
{
	for(int i=M;i<=N;i++)//M、N为一个范围
	{
		colour(i);
		printf("%d:String\n",i);
	}
	colour(7);//再次调整为默认颜色
	return 0;
} 

0~ 20 的输出:
C++更改控制台(SetConsoleTextAttribute)的输出的颜色_第2张图片

所以由上图可知,0 是透明无色的,从 16 开始,后面的值都是对应着其它的背景颜色

注意

当设置完后某种的颜色,如果没有即使调回或调整成其它的颜色该控制台将以这种颜色一直输出

如果讲解有任何疑问、拼写错误、运行错误以及其他的各种问题时,请联系以下邮箱:

[email protected]

你可能感兴趣的:(C++更改控制台(SetConsoleTextAttribute)的输出的颜色)