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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM