控制台單調的顏色只有黑白兩種,看起來多少難免有些單調。在沒學圖形化編程之前,每天看著控制台程式難免會枯燥無味。
不過,利用SetConsoleTextAttribute函數可以設定控制台的前景色彩和背景色。
閑言少敘,書歸正傳。
①:(顏色可以混合,遵循配色原理)
#include <windows.h>#include <iostream>using namespace std;int main(){ HANDLE hOut; hOut = GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleTextAttribute(hOut, FOREGROUND_RED | FOREGROUND_GREEN); cout << "This text is yellow." << endl; SetConsoleTextAttribute(hOut, FOREGROUND_GREEN | FOREGROUND_BLUE); cout << "This text is cyan." << endl; SetConsoleTextAttribute(hOut, FOREGROUND_BLUE | FOREGROUND_RED); cout << "This text is magenta." << endl; SetConsoleTextAttribute(hOut, FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE); cout << "This text is white." << endl; return 0;}
②:(明暗顏色)
#include <windows.h>#include <iostream>using namespace std;int main(){ HANDLE hOut; hOut = GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleTextAttribute(hOut, FOREGROUND_RED); cout << "Red " << flush; SetConsoleTextAttribute(hOut, FOREGROUND_RED | FOREGROUND_INTENSITY); cout << "Red" << endl; SetConsoleTextAttribute(hOut, FOREGROUND_GREEN); cout << "Green " << flush; SetConsoleTextAttribute(hOut, FOREGROUND_GREEN | FOREGROUND_INTENSITY); cout << "Green" << endl; SetConsoleTextAttribute(hOut, FOREGROUND_BLUE); cout << "Blue " << flush; SetConsoleTextAttribute(hOut, FOREGROUND_BLUE | FOREGROUND_INTENSITY); cout << "Blue" << endl; SetConsoleTextAttribute(hOut, FOREGROUND_RED | FOREGROUND_GREEN); cout << "Yellow " << flush; SetConsoleTextAttribute(hOut, FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_INTENSITY); cout << "Yellow" << endl; SetConsoleTextAttribute(hOut, FOREGROUND_GREEN | FOREGROUND_BLUE); cout << "Cyan " << flush; SetConsoleTextAttribute(hOut, FOREGROUND_GREEN | FOREGROUND_BLUE | FOREGROUND_INTENSITY); cout << "Cyan" << endl; SetConsoleTextAttribute(hOut, FOREGROUND_BLUE | FOREGROUND_RED); cout << "Magenta " << flush; SetConsoleTextAttribute(hOut, FOREGROUND_BLUE | FOREGROUND_RED | FOREGROUND_INTENSITY); cout << "Magenta" << endl; SetConsoleTextAttribute(hOut, FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE); cout << "White " << flush; SetConsoleTextAttribute(hOut, FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE | FOREGROUND_INTENSITY); cout << "White" << endl; return 0;}
③背景顏色:
#include <windows.h>#include <iostream>using namespace std;int main(){ HANDLE hOut; hOut = GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleTextAttribute(hOut, BACKGROUND_RED); cout << "Red " << flush; SetConsoleTextAttribute(hOut, BACKGROUND_RED | BACKGROUND_INTENSITY); cout << "Red " << endl; SetConsoleTextAttribute(hOut, BACKGROUND_GREEN); cout << "Green " << flush; SetConsoleTextAttribute(hOut, BACKGROUND_GREEN | BACKGROUND_INTENSITY); cout << "Green " << endl; SetConsoleTextAttribute(hOut, BACKGROUND_BLUE); cout << "Blue " << flush; SetConsoleTextAttribute(hOut, BACKGROUND_BLUE | BACKGROUND_INTENSITY); cout << "Blue " << endl; SetConsoleTextAttribute(hOut, BACKGROUND_RED | BACKGROUND_GREEN); cout << "Yellow " << flush; SetConsoleTextAttribute(hOut, BACKGROUND_RED | BACKGROUND_GREEN | BACKGROUND_INTENSITY); cout << "Yellow " << endl; SetConsoleTextAttribute(hOut, BACKGROUND_GREEN | BACKGROUND_BLUE); cout << "Cyan " << flush; SetConsoleTextAttribute(hOut, BACKGROUND_GREEN | BACKGROUND_BLUE | BACKGROUND_INTENSITY); cout << "Cyan " << endl; SetConsoleTextAttribute(hOut, BACKGROUND_BLUE | BACKGROUND_RED); cout << "Magenta " << flush; SetConsoleTextAttribute(hOut, BACKGROUND_BLUE | BACKGROUND_RED | BACKGROUND_INTENSITY); cout << "Magenta " << endl; SetConsoleTextAttribute(hOut, BACKGROUND_RED | BACKGROUND_GREEN | BACKGROUND_BLUE); cout << "White " << flush; SetConsoleTextAttribute(hOut, BACKGROUND_RED | BACKGROUND_GREEN | BACKGROUND_BLUE | BACKGROUND_INTENSITY); cout << "White " << endl; return 0;}