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

    一种方法是直接在程序上方栏杆点右键,然后属性处设置

    优点是设置后一劳永逸,不需要像后面方法那样要自己把设置写入程序代码内

    缺点是,一旦设置了就不能再改变了,程序从头到尾都是那种设置。

    第二种方法是使用windows API函数里的system()

    color /? 里面写的很清楚

    颜色属性由两个十六进制数字指定 -- 第一个为背景,第二个则为前景。每个数字可以为以下任何值之一:

    0 = 黑色 8 = 灰色
    1 = 蓝色 9 = 淡蓝色
    2 = 绿色 A = 淡绿色
    3 = 湖蓝色 B = 淡浅绿色
    4 = 红色 C = 淡红色
    5 = 紫色 D = 淡紫色
    6 = 黄色 E = 淡黄色
    7 = 白色 F = 亮白色

    如调用 system("color 02") 则颜色会变为,黑底蓝字
    优点是调用方便,只需要加一个函数即可
    缺点是设置的是全局变量,也就是设置后,前面显示的文字以及以后出现的都会变为这个设置


    第三种方法是SetConsoleTextAttribute()包含在头文件 windows.h
    函数原型BOOL SetConsoleTextAttribute(HANDLE hConsoleOutput, WORD wAttributes);

    参数

    consolehwnd = GetStdHandle(STD_OUTPUT_HANDLE);
    GetStdHandle(nStdHandle)是返回标准的输入、输出或错误的设备的句柄,也就是获得输入、输出/错误的屏幕缓冲区的句柄。
    其参数nStdHandle的值为下面几种类型的一种:
    含义
    STD_INPUT_HANDLE 标准输入的句柄
    STD_OUTPUT_HANDLE 标准输出的句柄
    STD_ERROR_HANDLE 标准错误的句柄
    wAttributes是用来设置颜色的参数:
    wAttributes 颜色 对应的值
    FOREGROUND_BLUE 字体颜色:蓝 1
    FOREGROUND_GREEN 字体颜色:绿 2
    FOREGROUND_RED 字体颜色:红 4
    FOREGROUND_INTENSITY 前景色高亮显示 8
    BACKGROUND_BLUE 背景颜色:蓝 16
    BACKGROUND_GREEN 背景颜色:绿 32
    BACKGROUND_RED
    背景颜色:红
    64
    BACKGROUND_INTENSITY 背景色高亮显示 128
    也就是说SetConsoleTextAttribute函数是靠一个字节的低四来控制前景色,高四位来控制背景色。
     
    我仔细说明一下SetConsoleTextAttribute的第二个参数
      它是一个WORD型的变量,其实就是一个unsigned shot型
      范围为0~65535
      当值超过它时自己会出警告
    十六位对应的输出总结如下:
      0透明1前景蓝2前景绿3前景红4前景高亮5背景蓝6背景绿7背景红8背景高亮
      9透明10透明11上划线12左划线13右划线14右划线15透明16透明

    一些混搭颜色:
    黑:0
    白:red+green+blue
    黄:red+green
    青:green+blue
    紫:red+blue

  • 相关阅读:
    Java后端面试题大汇总,冲刺金三银四
    面试官:小伙子,Mybatis的本质和原理说一下
    面试官问:大量的 TIME_WAIT 状态 TCP 连接,对业务有什么影响?怎么处理?
    便捷搭建 Zookeeper 服务器的方法,好用,收藏~
    10 个冷门但又非常实用的 Docker 使用技巧
    mitmproxy 抓包工具(1)
    基于alpine创建Scrapy镜像
    强大的输入框-应用快速启动uTools
    Interceptor、Filter、Servlet的区别
    利用三层判断sql数据库中编码是否已经存在(个人拙作,不喜勿喷)
  • 原文地址:https://www.cnblogs.com/someblue/p/3688603.html
Copyright © 2011-2022 走看看