c++控制輸出的字體顏色


SetConsoleTextAttribute(參數表)。
SetConsoleTextAttribute()函數是一個API設置字體顏色和背景色的函數。參數表中使用兩個屬性(屬性之間用,隔開)。GetStdHandle()和FOREGROUND_*或BACKGROUND_*。*值為INTENSITY或RED或GREEN或BLUE。第一個屬性獲得句柄(即要設置顏色的地方),第二個屬性設置顏色。屬性相加是在屬性值中間加“|”隔開即可。
GetStdHandle(STD_OUTPUT_HANDLE)獲得句柄。
FOREGROUND_INTENSITY 表示設置前景色為高亮顯示。
FOREGROUND_RED 表示設置前景色為紅色,即字體顏色為紅色。
FOREGROUND_GREEN 表示設置前景色為綠色,即字體顏色為綠色。
FOREGROUND_BLUE 表示設置前景色為藍色,即字體顏色為藍色。
BACKGROUND_INTENSITY 表示設置背景色為高亮顯示。
BACKGROUND_RED 表示設置背景色為紅色。
BACKGROUND_GREEN 表示設置背景色為綠色。
BACKGROUND_BLUE 表示設置背景色為藍色。
…… …… …… …… …… ……
說明:在使用時要在預處理中包含window.h頭文件
舉例如下:

#include <iostream>
#include "windows.h"
using namespace std;

int main()
{
    cout << "原色testCOLOR(沒有設置字體顏色)" << endl;
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY |FOREGROUND_RED |FOREGROUND_GREEN | FOREGROUND_BLUE);//設置三色相加
    cout << "白色testCOLOR(紅色綠色藍色相加)" << endl;
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED);//設置紅色
    cout << "紅色testCOLOR(設置的顏色為紅色)" << endl;
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_GREEN);//設置綠色
    cout << "綠色testCOLOR(設置的顏色為綠色)" << endl;
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_BLUE);//設置藍色
    cout << "藍色testCOLOR(設置的顏色為藍色)" << endl;
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED |FOREGROUND_GREEN);//設置紅色和綠色相加
    cout << "黃色testCOLOR(紅色和綠色相加色)" << endl;
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED |FOREGROUND_BLUE);//設置紅色和藍色相加
    cout << "粉色testCOLOR(紅色和藍色相加色)" << endl;
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_GREEN |FOREGROUND_BLUE);//設置綠色和藍色相加
    cout << "青色testCOLOR(綠色和藍色相加色)" << endl;
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY);//設置顏色,沒有添加顏色,故為原色
    cout << endl;

    system("pause");
    return 0;
}

 其中遵循顏色相加的法則。

前景色和背景色的區別:前景色是字體的顏色。背景色是字體后面的顏色(相當於做筆記高亮那一句的感覺)

經過測試,在改變顏色后無法再改回到初始狀態下。盡管不設置顏色,依然和最初情況不同,我猜測是cmd窗口默認的顏色不只是這三種顏色混合成的。不設置顏色時比最初的白色字體要暗,設置為三色疊加時比最初的白色字體要亮(就是一個是灰白,一個是亮白,默認的初始狀況在兩者之間)


免責聲明!

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



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