WINDOWS 控制台输出字符颜色控制

需要包含 Windows.h 头文件,通过 GetStdHandle 获取输出句柄,来控制输出。

HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);

SetConsoleTextAttribute(handle, 实际值);

#define FOREGROUND_BLUE      0x0001 // text color contains blue.
#define FOREGROUND_GREEN     0x0002 // text color contains green.
#define FOREGROUND_RED       0x0004 // text color contains red.
#define FOREGROUND_INTENSITY 0x0008 // text color is intensified.
#define BACKGROUND_BLUE      0x0010 // background color contains blue.
#define BACKGROUND_GREEN     0x0020 // background color contains green.
#define BACKGROUND_RED       0x0040 // background color contains red.
#define BACKGROUND_INTENSITY 0x0080 // background color is intensified.


可以多个组合,一个字节的位控制,高四位为背景色控制,第四位为字符颜色控制。XXX_INTENSITY 会增强显示强度。如


FOREGROUND_BLUE | FOREGROUND_INTENSITY | BACKGROUND_RED 字符为高亮蓝色,背景为非高亮红色

即后三位为颜色控制,都选择则为白色,若只选择 强度则为灰色


#include <cstdio>
#include "Windows.h"
int main(int argc, char* argv[])
{
printf("这是默认\n");


HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);


SetConsoleTextAttribute(handle, FOREGROUND_INTENSITY | FOREGROUND_RED);
printf("这是红色\n");
SetConsoleTextAttribute(handle, FOREGROUND_INTENSITY);
printf("这是灰色\n");
SetConsoleTextAttribute(handle, 0x0f);
printf("这是全部高亮\n"); 
SetConsoleTextAttribute(handle, 0x07);
printf("这是全部正常\n"); 
return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值