参考:SetConsoleTextAttribute 函数 - Windows Console | Microsoft Learn
一、头文件:
wincon.h
windows console即windows控制台
注:导入此头文件前,要先导入 Windows.h ,否则会报错
二、SetConsoleTextAttribute()函数分析:
1.功能:
设置控制台输出的文本颜色
2.定义:
WINBASEAPI WINBOOL WINAPI SetConsoleTextAttribute(HANDLE hConsoleOutput,WORD wAttributes);
类型分析:
typedef int WINBOOL;//此处可以得知,WINBOOL就是int,则可知SetConsoleTextAttribute()的返回值是一个int值,若函数成功,则返回非零值,否则,返回零
typedef void *HANDLE;//HANDLE本质上是一个空类型指针,它又被叫做句柄,通常用来获取系统资源(如文件、线程或图形图像),权限。SetConsoleTextAttribute()函数需要的是GENERIC_READ访问权限
typedef unsigned short WORD;//WORD为一个无符号短整型
3.参数:
(1)HANDLE hConsoleOutput
一个句柄,用来获取一些权限,设置一些状态。
句柄的初始化函数:
定义:WINBASEAPI HANDLE WINAPI GetStdHandle (DWORD nStdHandle);
分析:
参数:
DWORD nStdHandle;
类型分析:
typedef unsigned __LONG32 DWORD;
#define __LONG32 long;
可知,nStdHandle就是一个无符号长整形数据,它的取值如下:
SetConsoleTextAttribute()函数要控制的是输出设备,改变控制台上输出的数据的字体颜色,选择STD_OUTPUT_HANDLE
返回值:
返回一个handle类型的值
(2)WORD wAttributes:
windows控制台颜色:win+R-->cmd打开控制台-->命令Color help-->回车
颜色属性由两个十六进制数字指定 -- 第一个对应于背景,第二个对应于前景。每个数字可以为以下任何值:
例如:字体设置为蓝色0x01;红色0x04,根据需求选择
注:此参数为无符号短整型数据
三、实例
由此,已经可以了解SetConsoleTextAttribute()即基础用法,如下
HANDLE handle=GetStdHandle(STD_OUTPUT_HANDLE);
unsigned short RED = 0x04;
SetConsoleTextAttribute(handle,RED);
printf("Hello World!");
输出: