C语言SetConsoleTextAttribute函数使用方法

 更新时间:2021年12月07日 09:20:14   作者:流浪孤儿  
这篇文章介绍了C语言SetConsoleTextAttribute函数的使用方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

1、函数接口

BOOL WINAPI SetConsoleTextAttribute(

    _In_ HANDLE hConsoleOutput,

_In_ WORD wAttributes

);

头文件<windows.h>

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 下划线

 

4、测试代码

#include <iostream>
#include <cstdlib>
#include <cstdio>
#include <ctime>
#include <cmath>
#include <windows.h>
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;
}

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

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_HANDLE,15);

到此这篇关于C语言SetConsoleTextAttribute函数使用方法的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Qt视频播放器的实现示例

    Qt视频播放器的实现示例

    本文主要介绍了Qt视频播放器的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-08-08
  • C++用easyx图形库实现障碍跑酷小游戏

    C++用easyx图形库实现障碍跑酷小游戏

    这篇文章主要为大家详细介绍了C++用easyx图形库实现障碍跑酷小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-12-12
  • C++ 中placement new 操作符使用方法

    C++ 中placement new 操作符使用方法

    这篇文章主要介绍了C++ 中placement new 操作符使用方法的相关资料,需要的朋友可以参考下
    2017-05-05
  • C语言平衡二叉树详解

    C语言平衡二叉树详解

    这篇文章主要介绍了C语言平衡二叉树的相关资料,需要的朋友可以参考下,小编觉得这篇文章写的还不错,希望能够给你带来帮助
    2021-11-11
  • C++课程设计之学生成绩管理系统

    C++课程设计之学生成绩管理系统

    这篇文章主要为大家详细介绍了C++课程设计之学生成绩管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-12-12
  • opencv提取外部轮廓并在外部加矩形框

    opencv提取外部轮廓并在外部加矩形框

    这篇文章主要为大家详细介绍了opencv提取外部轮廓并在外部加矩形框,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-10-10
  • 关于C++静态数据成员的实现讲解

    关于C++静态数据成员的实现讲解

    今天小编就为大家分享一篇关于关于C++静态数据成员的实现讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-12-12
  • C++实现LeetCode(347.前K个高频元素)

    C++实现LeetCode(347.前K个高频元素)

    这篇文章主要介绍了C++实现LeetCode(347.前K个高频元素),本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • C++和C中const的区别详解

    C++和C中const的区别详解

    这篇文章主要为大家介绍了C++和C中const的区别,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2021-11-11
  • 一文掌握C++ 智能指针全部用法

    一文掌握C++ 智能指针全部用法

    学习智能指针有很多好处,可以帮我们C++程序员管理动态分配的内存的,它会帮助我们自动释放new出来的内存,从而避免内存泄漏,感兴趣的朋友跟随小编一起看看吧
    2021-08-08

最新评论