• 如何设置控制台字体颜色


    可以利用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

  • 相关阅读:
    IPv4地址被用光,IPv6将接手
    杀猪盘
    大家都应该看看这个贴子,会让你心明眼亮。 注意到这些变化了吗?中国正在发生的100个变化,越往后读越震惊!
    区块链在中国怎么练?
    区块链到底是什么样的技术呢?
    2019感恩节
    人工智能、大数据、物联网、区块链,四大新科技PK,你更看好谁?
    vue遇见的问题(2)---imported multiple times(转载)
    drf-序列化器的理解
    Django rest_framework序列化many=True参数解释
  • 原文地址:https://www.cnblogs.com/whl2012/p/4564831.html
Copyright © 2020-2023  润新知