zoukankan      html  css  js  c++  java
  • console程序显示彩色文字 .

     1、概要
      相信大部分关注本篇文章的你们都曾经写过console程序,那么你们是否面厌烦了一层不变的“黑底白字”的屏幕,是否有曾想过要给console程序的屏幕画画“彩妆”呢?本篇文章就是介绍如何给console程序显示彩色文字。
      

    2、给console程序屏幕画彩妆
      直接进入主题,需要用到的函数有:
      GetStdHandle
      SetConsoleTextAttribute

      另外演示代码中还用到了:
      WriteFile
      GetConsoleScreenBufferInfo

    2.1、GetStdHandle
      GetStdHandle是获得标准的输入、输出和错误的设备句柄,也就是获得输入、输出/错误的屏幕缓冲区句柄。

      HANDLE GetStdHandle( DWORD nStdHandle );
      nStdHandle可以是下列值之一:
      STD_INPUT_HANDLE standard input handle
      STD_OUTPUT_HANDLE standard output handle
      STD_ERROR_HANDLE standard error handle

      如果返回的标准的输入设备句柄,那么,你可以用ReadFile函数从console屏幕来读取由键盘输入的字符串,就像C语言中的scanf函数。如果是标准的输出设备句柄,那么可以用WriteFile函数向屏幕写入要显示的字符串,类似C语言中的printf函数。错误设备句柄也只能作为输出。
      注意:nStdHandle不能是两个或两个以上值的组合,也就是说GetStdHandle获得的一个标准设备句柄,要不只能输入,要不只能输出,不可兼得。

    2.2、SetConsoleTextAttribute
      
    Console默认的屏幕字体为黑底白字,SetConsoleTextAttribute能改变字体的背景色和字体颜色,只有调用了该函数,console的字体颜色还能得以改变。

      其原型为:
      BOOL SetConsoleTextAttribute( HANDLE hConsoleOutput, WORD wAttributes );
      hConsoleOutput:由GetStdHandle获得的标准输入、输出和设备句柄。
      wAttributes:要设定的颜色值,FOREGROUND_BLUE, FOREGROUND_GREEN, FOREGROUND_RED, FOREGROUND_INTENSITY, BACKGROUND_BLUE,等

    2.3、GetConsoleScreenBufferInfo
      
    这个函数的作用仅仅是获取当前console屏幕的一些属性值,其中就包括字体颜色。
  • 相关阅读:
    Thinkph5——模型软删除
    ThinkPHP5——URL参数带中文,报"模块不存在"
    ThinkPHP5多模板配置二级域名
    使用Composer安装阿里云短信失败
    GIT快速入门
    Python全栈之路系列----之-----面向对象4(接口与抽象,多继承与多态)
    Python全栈之路系列----之-----面向对象3(继承与派生)
    Python全栈之路系列----之-----面向对象1(初识)
    Python全栈之路系列----之-----异常处理
    Python全栈之路系列----之-----内置函数和匿名函数lamdba
  • 原文地址:https://www.cnblogs.com/leven20061001/p/2724712.html
Copyright © 2011-2022 走看看