C/C++ 在console 模式下輸出顏色字體

出處:http://s.epb.idv.tw/han-shi-ku/jia-li-jia/ru-men-ji-chu/zhu-kong-tai/cczaiconsolemoshixiashuchuyanseziti

看程式碼:  這是以C 作範例  但C++ 也可以用= w =
 
 
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#define TC_NONE     0
#define TC_BG_INTENSIFY BACKGROUND_INTENSITY
#define TC_FG_INTENSIFY FOREGROUND_INTENSITY
#define TC_FGBG_INTENSIFY (FOREGROUND_INTENSITY | BACKGROUND_INTENSITY)
WORD colorFG[]={
            0,
            FOREGROUND_RED,
            FOREGROUND_GREEN,
            FOREGROUND_RED | FOREGROUND_GREEN,
            FOREGROUND_BLUE,
            FOREGROUND_RED | FOREGROUND_BLUE,
            FOREGROUND_GREEN | FOREGROUND_BLUE,
            FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE
        };
WORD colorBG[]={
            0,
            BACKGROUND_RED,
            BACKGROUND_GREEN,
            BACKGROUND_RED | BACKGROUND_GREEN,
            BACKGROUND_BLUE,
            BACKGROUND_RED | BACKGROUND_BLUE,
            BACKGROUND_GREEN | BACKGROUND_BLUE,
            BACKGROUND_RED | BACKGROUND_GREEN | BACKGROUND_BLUE
        };
void textcolor(int attr, int fg, int bg)
{
   HANDLE test=GetStdHandle(STD_OUTPUT_HANDLE); //取得標準輸出控制
    SetConsoleTextAttribute (test, attr | colorFG[fg] | colorBG[bg]);
}
 
int main(void)
{
textcolor(TC_FG_INTENSIFY,2,0);
  printf(“The color is greenn”);
system(“pause”); 
return 0;
}
 
 
我想大家一定看不懂這個吧
#define TC_NONE     0    
#define TC_BG_INTENSIFY BACKGROUND_INTENSITY
#define TC_FG_INTENSIFY FOREGROUND_INTENSITY
#define TC_FGBG_INTENSIFY (FOREGROUND_INTENSITY | BACKGROUND_INTENSITY)
第一個 是 明亮度低
第二個 是背景明亮度高
第三個  字體明亮度高
第四個   字體+背景明亮度都高
 
 
至於陣列 位置顯示顏色
 
0 黑色  1 紅色  3黃色  4  藍色 5 紫色  6 青藍色 7 白色
 
參數解析:
 
void textcolor(int attr, int fg, int bg)
 
第一個參數放入字體明亮度  第二個 放入數字 0~7  第3個放入數字0~7
未經允許不得轉載:GoMCU » C/C++ 在console 模式下輸出顏色字體