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函数使用方法的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 谈谈C语言中位运算你要知道的那些事儿

    谈谈C语言中位运算你要知道的那些事儿

    C语言中的各种运算都是以字节的形式进行,在编写很多系统程序时,如驱动程序、磁盘文件管理程序等,常要求将数据按位(bit)进行运算或者处理,下面这篇文章主要给大家介绍了关于C语言中位运算的相关资料,需要的朋友可以参考下
    2022-02-02
  • 详解C语言随机数设置的三种方式(保姆级教程)

    详解C语言随机数设置的三种方式(保姆级教程)

    本篇文章将为大家介绍在C语言中设置随机数的三大方法的使用,文中的示例代码讲解详细,对我们学习C语言有一定的帮助,需要的可以参考一下
    2022-11-11
  • 基于C++ cin、cin.get()、cin.getline()、getline()、gets()函数的使用详解

    基于C++ cin、cin.get()、cin.getline()、getline()、gets()函数的使用详解

    学C++的时候,这几个输入函数弄的有点迷糊;这里做个小结
    2013-05-05
  • 数据结构之红黑树详解

    数据结构之红黑树详解

    这篇文章主要介绍了数据结构之红黑树详解,红黑树是一种自平衡二叉查找树,它的统计性能要好于平衡二叉树(AVL树),因此,红黑树在很多地方都有应用,需要的朋友可以参考下
    2014-08-08
  • c语言单词搜索的实现

    c语言单词搜索的实现

    本文主要介绍了c语言单词搜索的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-04-04
  • C语言实现发送邮件功能

    C语言实现发送邮件功能

    这篇文章主要为大家详细介绍了C语言实现发送邮件功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-06-06
  • OpenCV计算图像的水平和垂直积分投影

    OpenCV计算图像的水平和垂直积分投影

    这篇文章主要为大家详细介绍了OpenCV计算图像的水平和垂直积分投影,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-12-12
  • 详解C语言内核字符串转换方法

    详解C语言内核字符串转换方法

    在内核开发模式下,初始化字符串也需要调用专用的初始化函数,如下分别初始化ANSI和UNCODE字符串,本文我们就来看看代码是如何实现的
    2022-09-09
  • C语言文件操作详情(二)

    C语言文件操作详情(二)

    这篇文章主要介绍了C语言文件操作详情,文章基于上一篇文章的内容继续展开C语言文件操作的相关详情,需要的小伙伴可以参考一下
    2022-04-04
  • C++实现LeetCode(10.正则表达式匹配)

    C++实现LeetCode(10.正则表达式匹配)

    这篇文章主要介绍了C++实现LeetCode(10.正则表达式匹配),本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-07-07

最新评论