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ù)使用方法的文章就介紹到這了。希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
Qt圖形圖像開發(fā)之曲線圖表模塊QChart庫讀取/設置X軸的顯示區(qū)間
這篇文章主要介紹了Qt圖形圖像開發(fā)之曲線圖表模塊QChart庫讀取/設置X軸的顯示區(qū)間,需要的朋友可以參考下2020-03-03
在C++中實現(xiàn)aligned_malloc的方法
這篇文章主要介紹了在C++中實現(xiàn)aligned_malloc的方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-03-03
C語言入門學習之fgets()函數(shù)和fputs()函數(shù)
fgetc() 和 fputc() 函數(shù)每次只能讀寫一個字符,速度較慢,實際開發(fā)中往往是每次讀寫一個字符串或者一個數(shù)據(jù)塊,這樣能明顯提高效率,這篇文章主要給大家介紹了關于C語言入門學習之fgets()函數(shù)和fputs()函數(shù)的相關資料,需要的朋友可以參考下2021-11-11

