網站首頁 編程語言 正文
1、函數接口
BOOL WINAPI SetConsoleTextAttribute( _In_ HANDLE hConsoleOutput, _In_ WORD wAttributes );
頭文件<windows.h>
2、作用
SetConsoleTextAttribute()函數是一個設置控制臺字體顏色和背景色的函數。
3、參數
第一個參數獲得句柄(即要設置顏色的地方),第二個參數設置顏色。屬性相加是在屬性值中間加“|”
隔開即可(遵循配色原理)
。
GetStdHandle(STD_OUTPUT_HANDLE)獲得句柄。
FOREGROUND_INTENSITY? 表示設置前景色為高亮顯示。
FOREGROUND_RED??????? 表示設置前景色為紅色,即字體顏色為紅色。
FOREGROUND_GREEN????? 表示設置前景色為綠色,即字體顏色為綠色。
FOREGROUND_BLUE?????? 表示設置前景色為藍色,即字體顏色為藍色。
BACKGROUND_INTENSITY? 表示設置背景色為高亮顯示。
BACKGROUND_RED??????? 表示設置背景色為紅色。
BACKGROUND_GREEN????? 表示設置背景色為綠色。
BACKGROUND_BLUE?????? 表示設置背景色為藍色。
COMMON_LVB_GRID_HORIZONTAL | 頂部水平網格 |
COMMON_LVB_GRID_LVERTICAL | 左豎直網格 |
COMMON_LVB_GRID_RVERTICAL | 右豎直網格 |
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、直接使用數字進行配色
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
因此只要往該第二個參數傳相應的數字便可控制前景色與背景色了
即SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE,15);
原文鏈接:https://blog.csdn.net/qq_42591783/article/details/121686029
相關推薦
- 2022-09-01 基于MFC實現單個文檔的文件讀寫_C 語言
- 2022-06-01 C#枚舉的高級應用_基礎應用
- 2022-05-21 Keepalived+HAProxy高可用集群K8S實現_服務器其它
- 2022-11-19 詳解C語言內核中的自旋鎖結構_C 語言
- 2022-04-01 Android實現字母導航控件的示例代碼_Android
- 2022-10-18 Qt實現計算器功能_C 語言
- 2022-10-11 Flutter?語法進階抽象類和接口本質區別詳解_Dart
- 2023-04-06 C++之list容器介紹及使用方式_C 語言
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支