C語言SetConsoleTextAttribute函數(shù)使用方法
1、函數(shù)接口
BOOL WINAPI SetConsoleTextAttribute( _In_ HANDLE hConsoleOutput, _In_ WORD wAttributes );
頭文件<windows.h>
2、作用
SetConsoleTextAttribute()函數(shù)是一個設置控制臺字體顏色和背景色的函數(shù)。
3、參數(shù)
第一個參數(shù)獲得句柄(即要設置顏色的地方),第二個參數(shù)設置顏色。屬性相加是在屬性值中間加“|”
隔開即可(遵循配色原理)
。
GetStdHandle(STD_OUTPUT_HANDLE)獲得句柄。
FOREGROUND_INTENSITY? 表示設置前景色為高亮顯示。
FOREGROUND_RED??????? 表示設置前景色為紅色,即字體顏色為紅色。
FOREGROUND_GREEN????? 表示設置前景色為綠色,即字體顏色為綠色。
FOREGROUND_BLUE?????? 表示設置前景色為藍色,即字體顏色為藍色。
BACKGROUND_INTENSITY? 表示設置背景色為高亮顯示。
BACKGROUND_RED??????? 表示設置背景色為紅色。
BACKGROUND_GREEN????? 表示設置背景色為綠色。
BACKGROUND_BLUE?????? 表示設置背景色為藍色。
COMMON_LVB_GRID_HORIZONTAL | 頂部水平網(wǎng)格 |
COMMON_LVB_GRID_LVERTICAL | 左豎直網(wǎng)格 |
COMMON_LVB_GRID_RVERTICAL | 右豎直網(wǎng)格 |
COMMON_LVB_UNDERSCORE | 下劃線 |
?
4、測試代碼
#include <iostream> #include <cstdlib> #include <cstdio> #include <ctime> #include <cmath> #include <windows.h> using namespace std; int main() { cout << "原色(沒有設置字體顏色)" << endl; SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);//設置三色相加 cout << "白色(紅色綠色藍色相加)" << endl; SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED);//設置紅色 cout << "紅色(設置的顏色為紅色)" << endl; SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_GREEN);//設置綠色 cout << "綠色(設置的顏色為綠色)" << endl; SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_BLUE); //設置藍色 cout << "藍色(設置的顏色為藍色)" << endl; SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN);//設置紅色和綠色相加 cout << "黃色(紅色和綠色相加色)" << endl; SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_BLUE);//設置紅色和藍色相加 cout << "粉色(紅色和藍色相加色)" << endl; SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_GREEN | FOREGROUND_BLUE);//設置綠色和藍色相加 cout << "青色(綠色和藍色相加色)" << endl; SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY);//設置顏色,沒有添加顏色,故為原色 cout << endl; }
5、直接使用數(shù)字進行配色
0 = 黑色?????? 8 = 灰色
1 = 藍色?????? 9 = 淡藍色
2 = 綠色?????? A = 淡綠色
3 = 湖藍色???? B = 淡淺綠色
4 = 紅色?????? C = 淡紅色
5 = 紫色?????? D = 淡紫色
6 = 黃色?????? E = 淡黃色
7 = 白色?????? F = 亮白色
0 = black ????????? 8 = gray
1 = blue ??????????? 9 = light blue
2 = green ??????????????? A = light green
3 = lake blue??????????? B = light green
4 = red ???????????????????? C = light red
5 = purple ?????????????? D = lavender
6 = yellow???????????????? E = light yellow
7 = white?????????????????? F = bright white
說明:
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);//設置三色相加
? ? cout << "亮白色(紅色綠色藍色相加再加高亮)" << endl;
FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE=8|4|2|1=15
因此只要往該第二個參數(shù)傳相應的數(shù)字便可控制前景色與背景色了
即SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE,15);
到此這篇關于C語言SetConsoleTextAttribute函數(shù)使用方法的文章就介紹到這了。希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
基于C++ cin、cin.get()、cin.getline()、getline()、gets()函數(shù)的使用詳解
學C++的時候,這幾個輸入函數(shù)弄的有點迷糊;這里做個小結2013-05-05C++實現(xiàn)LeetCode(10.正則表達式匹配)
這篇文章主要介紹了C++實現(xiàn)LeetCode(10.正則表達式匹配),本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以參考下2021-07-07