【C语言】 |
您所在的位置:网站首页 › 编程中字体颜色都是啥颜色 › 【C语言】 |
【C语言】- 设置控制台标题、编码、文字大小、字体和颜色
文章目录
【C语言】- 设置控制台标题、编码、文字大小、字体和颜色1 - 设置控制台标题2 - 设置控制台编码3 - 设置控制台字体和大小4 - 设置控制台文字颜色4.1 - 全局颜色4.2 - 局部颜色
参考链接
1 - 设置控制台标题
因为要用到 Windows API,所以需要包含头文件 Windows.h #include // 标题设置声明 BOOL WINAPI SetConsoleTitle(_In_ LPCTSTR lpConsoleTitle);调用示例 #include int main(int argc, char* argv[]) { // 字符串常量 前面加上 L 会转换成宽字符 wchar_t* SetConsoleTitle(L"控制台应用测试"); // 防止控制台退出 system("pause"); // 防止控制台退出 也可以使用 getchar(); }效果如图: 若控制台输出中文为乱码,则可以使用 SetConsoleOutputCP 设置控制台输出代码页 BOOL WINAPI SetConsoleOutputCP(_In_ UINT wCodePageID);CP 表示 Code Page 代码页,GBK 为 936, UTF-8 为 65001。 更多内容 参见 Microsoft 官网 SetConsoleOutputCP 设置示例 SetConsoleOutputCP(65001); 3 - 设置控制台字体和大小设置控制台字体和大小,首先需要获取控制台句柄 HANDLE WINAPI GetStdHandle(_In_ DWORD nStdHandle);控制台输出句柄需要设置参数 STD_OUTPUT_HANDLE 参见官网 GetStdHandle 设置需要调用 BOOL WINAPI SetCurrentConsoleFontEx( _In_ HANDLE hConsoleOutput, // 控制台屏幕缓冲区的句柄 _In_ BOOL bMaximumWindow, // 是否设置窗体最大化的字体,FALSE 设置当前的字体信息 _In_ PCONSOLE_FONT_INFOEX lpConsoleCurrentFontEx // 字体信息结构体指针,见下方 配置结构体 );配置结构体示例 CONSOLE_FONT_INFOEX fontInfo; fontInfo.cbSize = sizeof(fontInfo); // 结构体的大小 fontInfo.nFont = 0; // 系统控制台字体表中字体的索引 fontInfo.dwFontSize.X = 0; // 字高 fontInfo.dwFontSize.Y = 20; // 字宽 fontInfo.FontFamily = FF_DONTCARE; // 字体间距和系列 fontInfo.FontWeight = FW_NORMAL; // 粗细 wcscpy_s(fontInfo.FaceName, L"Consolas"); // 字样的名称获取句柄与设置示例 HANDLE handle; if ((handle= GetStdHandle(STD_OUTPUT_HANDLE)) != INVALID_HANDLE_VALUE) { SetCurrentConsoleFontEx(handle, FALSE, &fontInfo); }更多内容,参见官网 SetCurrentConsoleFontEX 与 CONSOLE_FONT_INFOEX 4 - 设置控制台文字颜色 4.1 - 全局颜色可以设置全局的颜色通过 windows 的系统调用, system 命令行 调用 color 命令,格式 color xx,color + 两位十六进制数 ,两位数字中第一个数字为背景色,第二个数字为前景色(即文字颜色) 数字对应颜色0黑色1蓝色2绿色3浅绿色4红色5紫色6黄色7白色8灰色9淡蓝色A淡绿色B淡浅绿色C淡红色D淡紫色E淡黄色F亮白色调用示例,背景色红色(c),前景色亮白色(f) system("color cf");效果如图: 更多内容,可以通过 cmd 命令行查看帮助 color /?以上操作,会修改整个命令行的颜色,如果只修改局部的颜色则需要使用 SetConsoleTextAttribute BOOL WINAPI SetConsoleTextAttribute( _In_ HANDLE hConsoleOutput, // 控制台句柄 _In_ WORD wAttributes // 颜色 );控制台句柄获取与第三小节相同,颜色在 WinCon.h 中定义, 属性说明FOREGROUND_BLUE文本颜色包含蓝色FOREGROUND_GREEN文本颜色包含绿色FOREGROUND_RED文本颜色包含红色FOREGROUND_INTENSITY文本颜色增强BACKGROUND_BLUE背景色包含蓝色BACKGROUND_GREEN背景色包含绿色BACKGROUND_RED背景色包含红色BACKGROUND_INTENSITY背景色增强多种颜色可以通过或符号 (|) 叠加 代码示例:模拟 linux 控制台 int main(int argc, char* argv[]) { SetConsoleTitle(L"测试控制台颜色"); printf("test console color\n"); // 设置之后的文本为 蓝色 SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_BLUE | FOREGROUND_INTENSITY); // 亮蓝色 printf("[user@localhost /bin]$"); // 还原文本颜色为 白色 SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE); //rgb都有 即为白色 printf("ls -al /"); return 0; }效果如图
颜色也可以不使用预制的定义,也可以使用全局颜色定义的十六进制数,如 0xcf SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 0xcf); 参考链接 https://blog.csdn.net/qq_42717803/article/details/106318357https://blog.csdn.net/cjz2005/article/details/104358000 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |