SetConsoleTextAttribute函数用法

653 篇文章 12 订阅 ¥119.90 ¥299.90
本文介绍了如何使用SetConsoleTextAttribute API函数来改变控制台文本的颜色和背景色,提供了通过十六进制、十进制以及预定义参数的三种设置方式,并展示了相应的颜色效果。
摘要由CSDN通过智能技术生成

1.介绍

很多时候,我们希望编写出能够拥有各种颜色的程序,能够让人眼前一亮,虽然system(color)函数可以设置颜色,但是system(color)函数设置的颜色只能有一种,这显然不是我们想要的结果,我们需要的是一个名为SetConsoleTextAttribute的函数。
SetConsoleTextAttribute()函数是一个API设置字体颜色和背景色的函数。参数表中使用两个属性(属性之间用,隔开),不同于system(color),SetConsoleTextAttribute()可以改变界面多种颜色,而system()只能修改为一种!。

2.头文件

<windows.h>

3.函数原型

BOOL SetConsoleTextAttribute(HANDLE hConsoleOutput, WORD wAttributes);

4. 参数

HANDLE hConsoleOutput
consolehwnd = GetStdHandle(STD_OUTPUT_HANDLE)
GetStdHandle(nStdHandle)是返回标准的输入、输出或错误的设备的句柄,也就是获得输入、输出/错误的屏幕缓冲区的句柄。

其参数nStdHandle的值为下面几种类型的一种:
在这里插入图片描述
这里我们只需要使用STD_OUTPUT_HANDLE即可,

WORD wAttributes是用来设置颜色的参数,有三种写法

 SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 0x07);
 //第二个参数填十六进制数字。
 SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 7);
 //直接填十进制数字。
 SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), BACKGROUND_BLACK | FOREGROUND_RED);
 //BACKGROUND代表背景,FOREGROUND代表前景,

4.三种写法演示

(1)使用十六进制设置参数

 SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 0x06);
 printf("花狗\n");
 SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 0x07);
 printf("花狗\n");
 SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 0x08);
 printf("花狗\n");

结果如下:
在这里插入图片描述

其他颜色数值:

在这里插入图片描述

(2)使用十进制设置参数

 SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 10);
 printf("花狗\n");
 SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 12);
 printf("花狗\n");
 SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 14);
 printf("花狗\n");

结果如下:

在这里插入图片描述
其他颜色数据:
在这里插入图片描述

(3)使用函数已定义好的参数

 SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), BACKGROUND_GREEN | FOREGROUND_RED);
 printf("花狗\n");
 SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), BACKGROUND_GREEN | FOREGROUND_BLUE);
 printf("花狗\n");
 SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), BACKGROUND_RED | BACKGROUND_GREEN); 
 printf("花狗\n");

在这里插入图片描述

其他颜色数值:

在这里插入图片描述

在这里插入图片描述
好了,其他数值各位有兴趣的自行研究。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值