C语言 设置控制台字体颜色 SetConsoleTextAttribute
2017-06-26 10:22
666 查看
使用C/C++语言编程的时候,我们对于console一般都是直接调“prinf()”函数默认输出。事实上,我们可以对它的输出格式进行精确控制。在C中,一般使用“Format Specifier”,而在C++中使用的是“ios_base”库。参考文章如下:
https://msdn.microsoft.com/en-us/library/hh438469.aspx
https://www.le.ac.uk/users/rjm1/cotter/page_30.htm
除了控制输出格式,还可以控制输出字符的颜色,下面这篇文章简洁地介绍了如何控制console的字符颜色。它主要是调用SetConsoleTextAttribute函数,获取console的句柄,然后进行操作。
Buffer Security and Access Rights。
例如紫色可以用 蓝色+红色 配出来:
原文链接:https://lellansin.wordpress.com/2013/04/26/c语言-设置控制台字体颜色-setconsoletextattribute/
https://msdn.microsoft.com/en-us/library/hh438469.aspx
https://www.le.ac.uk/users/rjm1/cotter/page_30.htm
除了控制输出格式,还可以控制输出字符的颜色,下面这篇文章简洁地介绍了如何控制console的字符颜色。它主要是调用SetConsoleTextAttribute函数,获取console的句柄,然后进行操作。
BOOL WINAPI SetConsoleTextAttribute( _In_ HANDLE hConsoleOutput, // 控制台输出流句柄 _In_ WORD wAttributes // 设置属性 );
hConsoleOutput [输入参数]
控制台屏幕的输出流的句柄(handle to console screen buffer)。这个文件流的句柄必须有写入(GENERIC_READ)的权限。更多的信息,请查看MSDN上的ConsoleBuffer 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 | 下划线 |
代码测试
#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 0; }
例如紫色可以用 蓝色+红色 配出来:
#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 0; }
原文链接:https://lellansin.wordpress.com/2013/04/26/c语言-设置控制台字体颜色-setconsoletextattribute/
相关文章推荐
- C语言 设置控制台字体颜色 SetConsoleTextAttribute
- SetConsoleTextAttribute函数设置控制台字体的颜色
- 利用SetConsoleTextAttribute函数设置控制台颜色
- 利用SetConsoleTextAttribute函数设置控制台颜色
- 利用SetConsoleTextAttribute函数设置控制台颜色
- 利用SetConsoleTextAttribute函数设置控制台颜色
- 利用SetConsoleTextAttribute函数设置控制台颜色
- 利用SetConsoleTextAttribute函数设置控制台颜色
- 利用SetConsoleTextAttribute函数设置控制台颜色
- 利用SetConsoleTextAttribute函数设置控制台颜色
- 利用SetConsoleTextAttribute函数设置控制台颜色
- 利用SetConsoleTextAttribute函数设置控制台颜色 作者:odaynot
- SetConsoleTextAttribute设置颜色后的恢复
- SetConsoleTextAttribute设置颜色后的恢复
- SetConsoleTextAttribute 函数--设置控制台文本属性
- 对于c语言窗口怎么换不同颜色问题详解 用SetConsoleTextAttribute
- UITabBar 设置字体的颜色(选中状态/正常状态)setTitleTextAttributes
- 语言控制台如何设置局部字体和背景的颜色
- 【转】Android中设置TextView的颜色setTextColor--代码中设置字体颜色
- C/C++控制台输出时设置字体及背景颜色