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. 兔子的晚会 2016Vijos省选集训 day1

    兔子的晚会 (xor.c/pas/cpp)============================= 很久很久之前,兔子王国里居住着一群兔子.每到新年,兔子国王和他的守卫总是去现场参加晚会来欢庆新年. ...

  2. 1355: [Baltic2009]Radio Transmission[循环节]

    1355: [Baltic2009]Radio Transmission Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 796  Solved: 538 ...

  3. 【oracle案例】ORA-01102: cannot mount database in EXCLUSIVE mode

    ORA-01102: cannot mount database in EXCLUSIVE mode 今天在fedora上安装完10g后,测试数据库是否安装成功.STARTUP数据库时,发生如下错误: ...

  4. HTML5画布(基础篇11-10)

    <script type="text/javascript"> $(function(){ var s = $("#myCanvas")[0]; v ...

  5. 九度OJ 1072:有多少不同的面值组合? (计数)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:3112 解决:1591 题目描述: 某人有8角的邮票5张,1元的邮票4张,1元8角的邮票6张,用这些邮票中的一张或若干张可以得到多少种不同的 ...

  6. Webpack探索【8】--- 模块热替换详解

    本文主要讲模块热替换相关内容.

  7. AsyncHttpClien访问网络案例分析

    Android数据存储的四种方式分别是:SharedPreferences存储.File文件存储.Network网络存储和sqlite数据库存储,网络存储需要使用AsyncHttpClient发送请求 ...

  8. sed 和awk结合取ip 地址

    1.打印文件的第一列(域)                 : awk '{print $1}' filename 2.打印文件的前两列(域)                 : awk '{prin ...

  9. mac svn 使用

    上传文件 $ svn import file.xls svn://ip/sursen/05I\&V周报 -m "te"   备注: -m "冒号里面一定填写文件 ...

  10. px sp dp 手机尺寸