1、api原型 SetConsoleTextAttribute

BOOL WINAPI SetConsoleTextAttribute(
_In_ HANDLE hConsoleOutput, // 控制台输出流句柄
_In_ WORD wAttributes // 设置属性
);

hConsoleOutput [输入参数]

控制台屏幕的输出流的句柄(handle to console screen buffer)。

这个文件流的句柄必须有写入(GENERIC_READ)的权限。更多的信息,请查看MSDN上的Console Buffer Security and Access Rights。

wAttributes [输入参数]

具体常见设置属性如下:

属性 意义
FOREGROUND_BLUE 前景色包含 蓝色
FOREGROUND_GREEN 前景色包含 绿色
FOREGROUND_RED 前景色包含 红色
FOREGROUND_INTENSITY 前景色加强
BACKGROUND_BLUE 背景色包含 蓝色
BACKGROUND_GREEN 背景色包含 绿色
BACKGROUND_RED 背景色包含 红色
BACKGROUND_INTENSITY 背景色加强
COMMON_LVB_GRID_HORIZONTAL 顶部水平网格
COMMON_LVB_GRID_LVERTICAL 左竖直网格
COMMON_LVB_GRID_RVERTICAL 右竖直网格
COMMON_LVB_UNDERSCORE 下划线

2、代码测试

#include <windows.h>
#include <stdio.h>
#include <stdlib.h> int main()
{
HANDLE hOut; // 获取输出流的句柄
hOut = GetStdHandle(STD_OUTPUT_HANDLE); printf("普通颜色看看\n"); SetConsoleTextAttribute(hOut,
FOREGROUND_GREEN | // 前景色_绿色
FOREGROUND_INTENSITY ); // 前景色_加强
printf("设置了浅绿色.\n");
printf("并且完了之后就一直是浅绿色\n"); SetConsoleTextAttribute(hOut,
FOREGROUND_BLUE | // 前景色_蓝色
FOREGROUND_INTENSITY | // 前景色_加强
COMMON_LVB_UNDERSCORE); // 添加下划线
printf("文字蓝色,再加个下划线.\n"); SetConsoleTextAttribute(hOut,
FOREGROUND_RED | // 前景色_红色
FOREGROUND_INTENSITY | // 前景色_加强
BACKGROUND_BLUE ); // 背景色_蓝色
printf("设置文字红色,背景蓝色\n"); SetConsoleTextAttribute(hOut,
FOREGROUND_RED | // 前景色_红色
FOREGROUND_INTENSITY | // 前景色_加强
COMMON_LVB_GRID_LVERTICAL );// 网格_左_竖
printf(" 加 左 网格\n"); SetConsoleTextAttribute(hOut,
FOREGROUND_RED | // 前景色_红色
FOREGROUND_INTENSITY | // 前景色_加强
COMMON_LVB_GRID_RVERTICAL );// 网格_右_竖
printf(" 加 右 网格\n"); SetConsoleTextAttribute(hOut,
FOREGROUND_RED | // 前景色_红色
FOREGROUND_GREEN | // 前景色_绿色
FOREGROUND_BLUE ); // 前景色_蓝色
printf("改回白色\n"); system("pause");
return ;
}

例如紫色可以用 蓝色+红色 配出来:

#include <windows.h>
#include <stdio.h> // for printf
#include <stdlib.h> // for system int main()
{
HANDLE hOut; // 获取输出流的句柄
hOut = GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleTextAttribute(hOut,
FOREGROUND_RED | // 前景色_红色
FOREGROUND_BLUE | // 前景色_蓝色
FOREGROUND_INTENSITY);// 加强
printf(" 红 + 蓝 = 紫色 ^_^\n"); system("pause");
return ;
}

转载自:Lellansin's 冰森

使用API修改控制台输出的颜色(前景色和背景色)的更多相关文章

  1. C/C++ 修改控制台程序文字颜色

    可以修改前景色(字体颜色)和背景色. 示例代码如下: #include <iostream> #include <Windows.h> //需要引用Windows.h usin ...

  2. winfrom窗体加载控制台程序,可以自定义输出语句颜色

    winfrom窗体加载控制台程序,可以自定方输出语句颜色,如下图所示 怎么实现的此功能,网上有大把的方法,我这里已经把方法打包成了一个类,只需要引用调用就可以使用了,写的比较粗糙,如有发现需要改进的地 ...

  3. SpringBoot日志配置(详解) 涉及控制台输出日志、生成日志文件、日志级别修改、hibernate日志不输出

    写在前面 本篇主要讲述日志配置,看完本篇可以解决下述问题, 控制台输出日志.生成日志文件.日志级别修改.hibernate日志不输出 Git Demo Path:https://github.com/ ...

  4. 转贴:修改springboot控制台输出的图案

    Post from:https://blog.csdn.net/WXN069/article/details/90667668 修改springboot控制台输出的图案1.在src\main\reso ...

  5. 自定义SpringBoot控制台输出的图案

    pringboot启动的时候,控制台输出的图案叫banner banner?啥玩意儿?相信有些人,一定是一脸懵逼... ——这个就不陌生了吧,这个是我们启动springboot的时候,控制台输出的.. ...

  6. Python Logging模块 输出日志颜色、过期清理和日志滚动备份

    # coding:utf-8 import logging from logging.handlers import RotatingFileHandler # 按文件大小滚动备份 import co ...

  7. 通过printf设置Linux终端输出的颜色和显示方式

    转载自:http://www.cnblogs.com/clover-toeic/p/4031618.html 在Linux终端下调试程序时,有时需要输出大量信息.若能控制字体的颜色和显示方式,可使输出 ...

  8. 【转】【WPF】 WPF 调用API修改窗体风格实现真正的无边框窗体

    WPF中设置无边框窗体似乎是要将WindowStyle设置为None,AllowTransparency=true,这样才能达到WinForm中无边框窗体的样式.但是AllowTransparency ...

  9. python中输出内容颜色得控制

    参考:http://www.jb51.net/article/51237.htm 颜色代码 1)代码列表 格式:\[显示方式;前景色;背景色m 说明: 前景色 背景色 颜色 ------------- ...

随机推荐

  1. Java 学习 day01

    1. 基本常识 2. Java的跨平台性 3. Java环境搭建(安装) 4. Java环境搭建(环境变量配置) 5. Java环境搭建(环境变量配置技巧) 6. Java环境搭建(环境变量临时配置方 ...

  2. angularcli填坑系列(持续更新...)

    1.在xx.ts中引入css样式无效 @Component({ selector: 'app-root', templateUrl: './app.component.html', styleUrls ...

  3. java设计模式之迭代器模式

    一.迭代器模式简介 迭代器模式提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露其内部的表示. 迭代器模式让我们能游走于聚合内的每一个元素,而又不暴露内部的表示.把游走的任务放在迭代器上,而不是 ...

  4. 微信URL有效性验证

    1.填写配置项:填写 URL 和 Token 点击提交按钮  微信服务器会以get方式请求到所指定的URL,在此URL中进行URL的有效性验证 2.URL有效性的验证: if ("get&q ...

  5. 九度OJ 1056:最大公约数 (GCD)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:6278 解决:4075 题目描述: 输入两个正整数,求其最大公约数. 输入: 测试数据有多组,每组输入两个正整数. 输出: 对于每组输入,请 ...

  6. mysql系列之1.mysql基础

    非关系型(NOSQL)数据库 键值存储数据库: memcached  /  redis  /  memcachedb  /  Berkeley db 列存储数据库: Cassandra  /  Hba ...

  7. 一步步玩pcDuino3--mmc下的裸机流水灯

            第一部分是玩pcduino3下的裸机.这个过程能够让我们更好的理解嵌入式系统,熟悉我们使用的这个平台.         首先介绍下开发环境: 虚拟机:VMware® Workstati ...

  8. Java for LeetCode 137 Single Number II

    Given an array of integers, every element appears three times except for one. Find that single one. ...

  9. gon

    gem 'gon' application.html 中添加 =include_gon action中 gon.activities = @activities js中 gon.activities

  10. 常用的.gitignore文件

    target/ !.mvn/wrapper/maven-wrapper.jar ### STS ### .apt_generated .classpath .factorypath .project ...