SetConsoleTextAttribute函数的使用介绍

 

目录

1、函数接口

2、作用

3、参数

4、测试代码

5、直接使用数字进行配色

说明:


1、函数接口

BOOL WINAPI SetConsoleTextAttribute(

    _In_ HANDLE hConsoleOutput,

_In_ WORD wAttributes

);

头文件

2、作用

SetConsoleTextAttribute()函数是一个设置控制台字体颜色和背景色的函数。

3、参数

第一个参数获得句柄(即要设置颜色的地方),第二个参数设置颜色。属性相加是在属性值中间加“|”隔开即可(遵循配色原理)。

GetStdHandle(STD_OUTPUT_HANDLE)获得句柄。

FOREGROUND_INTENSITY  表示设置前景色为高亮显示。

FOREGROUND_RED        表示设置前景色为红色,即字体颜色为红色。

FOREGROUND_GREEN      表示设置前景色为绿色,即字体颜色为绿色。

FOREGROUND_BLUE       表示设置前景色为蓝色,即字体颜色为蓝色。

BACKGROUND_INTENSITY  表示设置背景色为高亮显示。

BACKGROUND_RED        表示设置背景色为红色。

BACKGROUND_GREEN      表示设置背景色为绿色。

BACKGROUND_BLUE       表示设置背景色为蓝色。

COMMON_LVB_GRID_HORIZONTAL

顶部水平网格

COMMON_LVB_GRID_LVERTICAL

左竖直网格

COMMON_LVB_GRID_RVERTICAL

右竖直网格

COMMON_LVB_UNDERSCORE

下划线

SetConsoleTextAttribute函数的使用介绍_第1张图片 

 

4、测试代码

#include

#include

#include

#include

#include

#include

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;

}

SetConsoleTextAttribute函数的使用介绍_第2张图片

 

5、直接使用数字进行配色

SetConsoleTextAttribute函数的使用介绍_第3张图片

0 = 黑色       8 = 灰色

1 = 蓝色       9 = 淡蓝色

2 = 绿色       A = 淡绿色

3 = 湖蓝色     B = 淡浅绿色

4 = 红色       C = 淡红色

5 = 紫色       D = 淡紫色

6 = 黄色       E = 淡黄色

7 = 白色       F = 亮白色

0 = black           8 = gray

1 = blue             9 = light blue

2 = green                 A = light green

3 = lake blue            B = light green

4 = red                      C = light red

5 = purple                D = lavender

6 = yellow                 E = light yellow

7 = white                   F = bright white

说明:

SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);//设置三色相加

    cout << "亮白色(红色绿色蓝色相加再加高亮)" << endl;

FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE=8|4|2|1=15

因此只要往该第二个参数传相应的数字便可控制前景色与背景色了

SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE15)

SetConsoleTextAttribute函数的使用介绍_第4张图片

 

你可能感兴趣的:(C精华,p2p,c++,fpga开发)