<知識分享> 在這裡介紹一個設置文本屬性的函數,原型如下 BOOL SetConsoleTextAttribute( // 設置WriteConsole等函數的字符屬性 HANDLE hConsoleOutput, // 句柄 WORD wAttributes // 文本屬性 ); 順便提一下文本屬性,其實就是顏色屬性,有背景色和前景色(就是字符的顏色)兩類,每一類只提供三原色(紅,綠,藍)和加強色(灰色,可與其他顏色搭配使用,使顏色變亮,後面會提到)。最後還有一個反色(不太清楚這個到底怎麼用,很奇葩的東西)。示例程序如下: #include <stdio.h> #include <stdlib.h> #include <windows.h> #include <conio.h> /* 基本文本屬性 FOREGROUND_BLUE 藍色 FOREGROUND_GREEN 綠色 FOREGROUND_RED 紅色 FOREGROUND_INTENSITY 加強 BACKGROUND_BLUE 藍色背景 BACKGROUND_GREEN 綠色背景 BACKGROUND_RED 紅色背景 BACKGROUND_INTENSITY 背景色加強 COMMON_LVB_REVERSE_VIDEO 反色 */ const WORD FORE_BLUE = FOREGROUND_BLUE; //藍色文本屬性 const WORD FORE_GREEN = FOREGROUND_GREEN; //綠色文本屬性 const WORD FORE_RED = FOREGROUND_RED; //紅色文本屬性 const WORD FORE_PURPLE = FORE_BLUE | FORE_RED; //紫色文本屬性 const WORD FORE_CYAN = FORE_BLUE | FORE_GREEN; //青色文本屬性 const WORD FORE_YELLOW = FORE_RED | FORE_GREEN; //黃色文本屬性 const WORD FORE_GRAY = FOREGROUND_INTENSITY; //灰色文本屬性 const WORD BACK_BLUE = BACKGROUND_BLUE; //藍色背景屬性 const WORD BACK_GREEN = BACKGROUND_GREEN; //綠色背景屬性 const WORD BACK_RED = BACKGROUND_RED; //綠色背景屬性 const WORD BACK_PURPLE = BACK_BLUE | BACK_RED; //紫色背景屬性 const WORD BACK_CYAN = BACK_BLUE | BACK_GREEN; //青色背景屬性 const WORD BACK_YELLOW = BACK_RED | BACK_GREEN; //黃色背景屬性 const WORD BACK_GRAY = BACKGROUND_INTENSITY; //灰色背景屬性 int main() { HANDLE handle_out = GetStdHandle(STD_OUTPUT_HANDLE); //獲得標准輸出設備句柄 CONSOLE_SCREEN_BUFFER_INFO csbi; //定義窗口緩沖區信息結構體 GetConsoleScreenBufferInfo(handle_out, &csbi); //獲得窗口緩沖區信息 SetConsoleTextAttribute(handle_out, FORE_BLUE); printf("藍色字符\n"); SetConsoleTextAttribute(handle_out, FORE_RED); printf("紅色字符\n"); SetConsoleTextAttribute(handle_out, FORE_GREEN); printf("綠色字符\n"); SetConsoleTextAttribute(handle_out, FORE_PURPLE); printf("紫色字符\n"); SetConsoleTextAttribute(handle_out, FORE_CYAN); printf("青色字符\n"); SetConsoleTextAttribute(handle_out, FORE_YELLOW); printf("黃色字符\n"); SetConsoleTextAttribute(handle_out, FORE_GRAY); printf("灰色字符\n"); SetConsoleTextAttribute(handle_out, FORE_GREEN | FORE_BLUE | FORE_RED); printf("白色字符\n"); SetConsoleTextAttribute(handle_out, BACK_BLUE); printf("藍色背景\n"); SetConsoleTextAttribute(handle_out, BACK_RED); printf("紅色背景\n"); SetConsoleTextAttribute(handle_out, BACK_GREEN); printf("綠色背景\n"); SetConsoleTextAttribute(handle_out, BACK_PURPLE); printf("紫色背景\n"); SetConsoleTextAttribute(handle_out, BACK_CYAN); printf("青色背景\n"); SetConsoleTextAttribute(handle_out, BACK_YELLOW); printf("黃色背景\n"); SetConsoleTextAttribute(handle_out, BACK_GRAY); printf("灰色背景\n"); SetConsoleTextAttribute(handle_out, BACK_BLUE | BACK_RED | BACK_GREEN); printf("白色背景\n"); SetConsoleTextAttribute(handle_out, BACK_GREEN | FORE_RED); //示例:綠色背景紅色字符 printf("綠色背景與紅色字符的混合\n"); SetConsoleTextAttribute(handle_out, FOREGROUND_INTENSITY | FORE_RED); //示例:亮紅色字符 printf("亮色的生成,與加強色融合\n"); return 0;