zoukankan      html  css  js  c++  java
  • 如何设置控制台字体颜色

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

  • 相关阅读:
    找到数组或整数列表中连续子序列的最大和
    编写一个调用的函数,该函数接受一个括号字符串,并确定括号的顺序是否有效
    SRS流媒体服务器搭建及拉取摄像头视频流经opencv处理后再推流至SRS
    (pymysql.err.OperationalError) (1055, "Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column
    微信商户转帐到个人零钱
    双色球1千万,等你来拿!
    python后端开发面试总结
    alipay接入步骤
    Mongodb简单操作
    flask基础
  • 原文地址:https://www.cnblogs.com/whl2012/p/4564831.html
Copyright © 2011-2022 走看看