如何设置控制台字体颜色
可以利用SetConsoleTextAttribute函数实现对控制台字体颜色、下划线等格式的设置
1. SetConsoleTextAttribute 函数原型
1 BOOL WINAPI SetConsoleTextAttribute( 2 _In_ HANDLE hConsoleOutput, // 控制台输出流句柄 3 _In_ WORD wAttributes // 设置属性 4 );
- 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. 实例
1 #include <Windows.h> 2 #include <iostream> 3 void main() 4 { 5 HANDLE hOut; 6 hOut = GetStdHandle(STD_OUTPUT_HANDLE); 7 8 std::cout << "普通颜色看看" << std::endl; 9 10 SetConsoleTextAttribute(hOut, 11 FOREGROUND_GREEN | // 前景色_绿色 12 FOREGROUND_INTENSITY ); // 前景色_加强 13 std::cout << "设置了浅绿色,并且完了之后就一直是浅绿色" << std::endl; 14 15 SetConsoleTextAttribute(hOut, 16 FOREGROUND_BLUE | // 前景色_蓝色 17 FOREGROUND_INTENSITY | // 前景色_加强 18 COMMON_LVB_UNDERSCORE); // 添加下划线 19 std::cout << "文字蓝色,再加个下划线" << std::endl; 20 21 SetConsoleTextAttribute(hOut, 22 FOREGROUND_RED | // 前景色_红色 23 FOREGROUND_INTENSITY | // 前景色_加强 24 BACKGROUND_BLUE ); // 背景色_蓝色 25 std::cout << "设置文字红色,背景蓝色" << std::endl; 26 27 28 SetConsoleTextAttribute(hOut, 29 FOREGROUND_RED | // 前景色_红色 30 FOREGROUND_INTENSITY | // 前景色_加强 31 COMMON_LVB_GRID_LVERTICAL );// 网格_左_竖 32 std::cout << "加左网格" << std::endl; 33 34 SetConsoleTextAttribute(hOut, 35 FOREGROUND_RED | // 前景色_红色 36 FOREGROUND_INTENSITY | // 前景色_加强 37 COMMON_LVB_GRID_RVERTICAL );// 网格_右_竖 38 std::cout << "加右网格" << std::endl; 39 40 SetConsoleTextAttribute(hOut, 41 FOREGROUND_RED | // 前景色_红色 42 FOREGROUND_GREEN | // 前景色_绿色 43 FOREGROUND_BLUE ); // 前景色_蓝色 44 std::cout << "改回白色" << std::endl;
原文地址:http://www.lellansin.com/c%E8%AF%AD%E8%A8%80-%E8%AE%BE%E7%BD%AE%E6%8E%A7%E5%88%B6%E5%8F%B0%E5%AD%97%E4%BD%93%E9%A2%9C%E8%89%B2-setconsoletextattribute.html