C语言SetConsoleTextAttribute函数使用方法

目录
  • 1、函数接口
  • 2、作用
  • 3、参数
  • 4、测试代码
  • 5、直接使用数字进行配色

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

(0)

相关推荐

  • C/C++ 中怎样使用SetConsoleTextAttribute()函数来控制输出字符的颜色

    当我们在命令行输出字符的时候,会想着,要是能控制输出字符的颜色就好了. 现在,满足你,有这么一个函数能够帮助我们实现这个想法. ↓↓↓↓↓ SetConsoleTextAttribute(); 依照惯例我们来看看这个函数的构成. SetConsoleTextAttribute( _In_ HANDLE hConsoleOutput, _In_ WORD wAttributes ); HANDLE在上一篇博客中我们见过.注意在使用前,要先将其变为标准输出句柄. typedef void *HAND

  • C语言SetConsoleTextAttribute函数使用方法

    目录 1.函数接口 2.作用 3.参数 4.测试代码 5.直接使用数字进行配色 1.函数接口 BOOL WINAPI SetConsoleTextAttribute( _In_ HANDLE hConsoleOutput, _In_ WORD wAttributes ); 头文件<windows.h> 2.作用 SetConsoleTextAttribute()函数是一个设置控制台字体颜色和背景色的函数. 3.参数 第一个参数获得句柄(即要设置颜色的地方),第二个参数设置颜色.属性相加是在属性

  • C语言SetConsoleCursorPosition函数使用方法

    目录 函数接口 作用: 测试代码1 测试结果1 测试代码2 测试结果2 函数接口 BOOL WINAPI SetConsoleCursorPosition( _In_ HANDLE hConsoleOutput, _In_ COORD dwCursorPosition ); 作用: 实现控制台光标定位 测试代码1 #include<stdio.h> #include<windows.h> int main() { COORD pos = { 15,5 }; HANDLE hOut

  • C语言memset函数使用方法详解

    C语言memset函数使用方法详解 一.函数原形   void *  memset(void*s, int ch,size_t n) 二.函数作用  将以s内存地址为首的连续n个字节的内容置成ch,一般用来对大量结构体和数组进行清零 三.常见错误 1.搞反了 ch 和 n的位置 对char[20]清零,一定是 memset(a,0,20); 2.过度使用memset 3.其实这个错误严格来讲不能算用错memset,但是它经常在使用memset的场合出现 int fun(strucy someth

  • C语言SetConsoleCursorInfo函数使用方法

    目录 函数的接口 作用 返回值 函数的接口 BOOL WINAPI SetConsoleCursorInfo( _In_ HANDLE hConsoleOutput, _In_ CONST CONSOLE_CURSOR_INFO* lpConsoleCursorInfo ); 作用 是用来检索有关指定控制台屏幕缓冲区的光标大小和可见性的信息 返回值 如果函数成功,返回值为非零. 如果函数失败,返回值为零.要获得扩展的错误信息,请调用GetLastError 到此这篇关于C语言SetConsole

  • C语言GetStdHandle函数使用方法

    目录 函数的接口 作用 参数 返回值 函数的接口 HANDLE WINAPI GetStdHandle( _In_ DWORD nStdHandle ); //WINAPI不是返回值的类型,HANDLE才是,WINAPI是 系统调用约定 作用 该函数用于取得指定的标准设备的句柄(标准输入,标准输出或标准错误). 参数 nStdHandle 标准句柄.该参数可以是以下值之一. 值 含义 STD_INPUT_HANDLE 标准输入的句柄 STD_OUTPUT_HANDLE 标准输出的句柄 STD_E

  • C语言PlaySound函数使用方法

    目录 1用法 2 参数 3头文件与静态文件 4 音乐路径 1用法 PlaySound是windows中用来播放声音的API函数, 函数接口如下:  BOOL PlaySound(LPCSTR pszSound, HMODULE hmod,DWORD fdwSound)  2 参数 其中pszSound用来指定要播放的文件,可以是资源名或者音乐文件的路径,若为空(NULL)则停止正在播放的声音.PlaySound只能播放WAV文件.  hmod一般设置为空(NULL),除非你要指向资源标识符(即f

  • C语言system函数使用方法详解

    目录 函数接口 作用 返回值 测试代码 参数 MODE命令 color命令 函数接口 _DCRTIMP int __cdecl system( _In_opt_z_ char const* _Command ); system函数已经被收录在标准c库中,头文件为<stdlib.h> 作用 执行系统命令调用命令处理器来执行命令. 如果命令是空指针,则该函数只检查是否有命令处理器可以被此函数使用. 命令非空则调用命令的效果取决于系统和库的实现,并可能导致程序以非标准的方式运行或终止. 补充: 执行

  • go语言中函数与方法介绍

    在C#或者Java里面我们都知道,一个Class是要包含成员变量和方法的,对于GO语言的Struct也一样,我们也可以给Struct定义一系列方法. 一.怎么定义一个方法? Go的方法是在函数前面加上一个接收者,这样编译器就知道这个方法属于哪个类型了.例如: package demo1 import ( "fmt" ) type Student struct { Name string Age int Class string } func (stu Student) GetUserI

  • C语言qsort函数使用方法详解

    目录 1.qsort函数 1.1qsort函数功能 1.2参数介绍 2.qsort函数功能测试 3.冒泡排序思想模拟实现qsort 1.qsort函数 void qsort (void* base, size_t num, size_t size, int (compar)(const void,const void*)); 1.1qsort函数功能 可以排序任何数据类型 对 所指向的数组元素进行排,使用函数确定顺序. 此函数使用的排序算法通过调用指定函数并指向元素的指针作为参数来比较元素. 该

  • C语言中函数指针的三种使用方法总结

     C语言中函数指针的三种使用方法总结 在这里分享一下自己的心得,希望和大家一起分享技术,如果有什么不足,还请大家指正.写出这篇目的,就是希望大家一起成长,我也相信技术之间没有高低,只有互补,只有分享,才能使彼此更加成长. 定义方式:int (*p)(int x, int y); 实现代码: #include <stdio.h> int sum(int x, int y){ return x + y; } int reduce(int x, int y){ return x - y; } int

随机推荐