使用API修改控制台输出的颜色(前景色和背景色)
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修改控制台输出的颜色(前景色和背景色)的更多相关文章
- C/C++ 修改控制台程序文字颜色
可以修改前景色(字体颜色)和背景色. 示例代码如下: #include <iostream> #include <Windows.h> //需要引用Windows.h usin ...
- winfrom窗体加载控制台程序,可以自定义输出语句颜色
winfrom窗体加载控制台程序,可以自定方输出语句颜色,如下图所示 怎么实现的此功能,网上有大把的方法,我这里已经把方法打包成了一个类,只需要引用调用就可以使用了,写的比较粗糙,如有发现需要改进的地 ...
- SpringBoot日志配置(详解) 涉及控制台输出日志、生成日志文件、日志级别修改、hibernate日志不输出
写在前面 本篇主要讲述日志配置,看完本篇可以解决下述问题, 控制台输出日志.生成日志文件.日志级别修改.hibernate日志不输出 Git Demo Path:https://github.com/ ...
- 转贴:修改springboot控制台输出的图案
Post from:https://blog.csdn.net/WXN069/article/details/90667668 修改springboot控制台输出的图案1.在src\main\reso ...
- 自定义SpringBoot控制台输出的图案
pringboot启动的时候,控制台输出的图案叫banner banner?啥玩意儿?相信有些人,一定是一脸懵逼... ——这个就不陌生了吧,这个是我们启动springboot的时候,控制台输出的.. ...
- Python Logging模块 输出日志颜色、过期清理和日志滚动备份
# coding:utf-8 import logging from logging.handlers import RotatingFileHandler # 按文件大小滚动备份 import co ...
- 通过printf设置Linux终端输出的颜色和显示方式
转载自:http://www.cnblogs.com/clover-toeic/p/4031618.html 在Linux终端下调试程序时,有时需要输出大量信息.若能控制字体的颜色和显示方式,可使输出 ...
- 【转】【WPF】 WPF 调用API修改窗体风格实现真正的无边框窗体
WPF中设置无边框窗体似乎是要将WindowStyle设置为None,AllowTransparency=true,这样才能达到WinForm中无边框窗体的样式.但是AllowTransparency ...
- python中输出内容颜色得控制
参考:http://www.jb51.net/article/51237.htm 颜色代码 1)代码列表 格式:\[显示方式;前景色;背景色m 说明: 前景色 背景色 颜色 ------------- ...
随机推荐
- Java 学习 day01
1. 基本常识 2. Java的跨平台性 3. Java环境搭建(安装) 4. Java环境搭建(环境变量配置) 5. Java环境搭建(环境变量配置技巧) 6. Java环境搭建(环境变量临时配置方 ...
- angularcli填坑系列(持续更新...)
1.在xx.ts中引入css样式无效 @Component({ selector: 'app-root', templateUrl: './app.component.html', styleUrls ...
- java设计模式之迭代器模式
一.迭代器模式简介 迭代器模式提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露其内部的表示. 迭代器模式让我们能游走于聚合内的每一个元素,而又不暴露内部的表示.把游走的任务放在迭代器上,而不是 ...
- 微信URL有效性验证
1.填写配置项:填写 URL 和 Token 点击提交按钮 微信服务器会以get方式请求到所指定的URL,在此URL中进行URL的有效性验证 2.URL有效性的验证: if ("get&q ...
- 九度OJ 1056:最大公约数 (GCD)
时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:6278 解决:4075 题目描述: 输入两个正整数,求其最大公约数. 输入: 测试数据有多组,每组输入两个正整数. 输出: 对于每组输入,请 ...
- mysql系列之1.mysql基础
非关系型(NOSQL)数据库 键值存储数据库: memcached / redis / memcachedb / Berkeley db 列存储数据库: Cassandra / Hba ...
- 一步步玩pcDuino3--mmc下的裸机流水灯
第一部分是玩pcduino3下的裸机.这个过程能够让我们更好的理解嵌入式系统,熟悉我们使用的这个平台. 首先介绍下开发环境: 虚拟机:VMware® Workstati ...
- Java for LeetCode 137 Single Number II
Given an array of integers, every element appears three times except for one. Find that single one. ...
- gon
gem 'gon' application.html 中添加 =include_gon action中 gon.activities = @activities js中 gon.activities
- 常用的.gitignore文件
target/ !.mvn/wrapper/maven-wrapper.jar ### STS ### .apt_generated .classpath .factorypath .project ...