Using function SetConsoleTextAttribute() to modify。
Following are the color code and output sample image。
// http://www.cplusplus.com/forum/beginner/54360/ #include <stdio.h> #include "conio.h" #include <iostream> #include <windows.h> using namespace std; /* The different color codes are 0 BLACK 1 BLUE 2 GREEN 3 CYAN 4 RED 5 MAGENTA 6 BROWN 7 LIGHTGRAY 8 DARKGRAY 9 LIGHTBLUE 10 LIGHTGREEN 11 LIGHTCYAN 12 LIGHTRED 13 LIGHTMAGENTA 14 YELLOW 15 WHITE */ enum COLORS { TEXT_BLACK=0x00, TEXT_BLUE=0x01, TEXT_GREEN=0x02, TEXT_CYAN=0x03, TEXT_RED=0x04, TEXT_MAGENTA=0x05, TEXT_BROWN=0x06, TEXT_LIGHTGRAY=0x07, TEXT_DARKGRAY=0x08, TEXT_LIGHTBLUE=0x09, TEXT_LIGHTGREEN=0x0A, TEXT_LIGHTCYAN=0x0B, TEXT_LIGHTRED=0x0C, TEXT_LIGHTMAGENTA=0x0D, TEXT_YELLOW=0x0E, TEXT_WHITE=0x0F, BACK_BLACK=0x00, BACK_BLUE=0x10, BACK_GREEN=0x20, BACK_CYAN=0x30, BACK_RED=0x40, BACK_MAGENTA=0x50, BACK_BROWN=0x60, BACK_LIGHTGRAY=0x70, BACK_DARKGRAY=0x80, BACK_LIGHTBLUE=0x90, BACK_LIGHTGREEN=0xA0, BACK_LIGHTCYAN=0xB0, BACK_LIGHTRED=0xC0, BACK_LIGHTMAGENTA=0xD0, BACK_YELLOW=0xE0, BACK_WHITE=0xF0, }; int main ( void ) { HANDLE h = GetStdHandle ( STD_OUTPUT_HANDLE ); WORD wOldColorAttrs; CONSOLE_SCREEN_BUFFER_INFO csbiInfo; /* * First save the current color information */ GetConsoleScreenBufferInfo(h, &csbiInfo); wOldColorAttrs = csbiInfo.wAttributes; printf("consle color: http://www.cplusplus.com/forum/beginner/54360/ \n\n"); /* * Set the new color information */ SetConsoleTextAttribute ( h, TEXT_BLACK | BACK_WHITE); printf ( "TEXT_BLACK: 0x%X\n", TEXT_BLACK | BACK_WHITE); SetConsoleTextAttribute ( h, TEXT_BLUE); printf ( "TEXT_BLUE: 0x%X\n", TEXT_BLUE); SetConsoleTextAttribute ( h, TEXT_GREEN); printf ( "TEXT_GREEN: 0x%X\n", TEXT_GREEN); SetConsoleTextAttribute ( h, TEXT_CYAN); printf ( "TEXT_CYAN: 0x%X\n", TEXT_CYAN); SetConsoleTextAttribute ( h, TEXT_RED); printf ( "TEXT_RED: 0x%X\n", TEXT_RED); SetConsoleTextAttribute ( h, TEXT_MAGENTA); printf ( "TEXT_MAGENTA: 0x%X\n", TEXT_MAGENTA); SetConsoleTextAttribute ( h, TEXT_BROWN); printf ( "TEXT_BROWN: 0x%X\n", TEXT_BROWN); SetConsoleTextAttribute ( h, TEXT_LIGHTGRAY); printf ( "TEXT_LIGHTGRAY: 0x%X\n", TEXT_LIGHTGRAY); SetConsoleTextAttribute ( h, TEXT_DARKGRAY); printf ( "TEXT_DARKGRAY: 0x%X\n", TEXT_DARKGRAY); SetConsoleTextAttribute ( h, TEXT_LIGHTBLUE); printf ( "TEXT_LIGHTBLUE: 0x%X\n", TEXT_LIGHTBLUE); SetConsoleTextAttribute ( h, TEXT_LIGHTGREEN); printf ( "TEXT_LIGHTGREEN: 0x%X\n", TEXT_LIGHTGREEN); SetConsoleTextAttribute ( h, TEXT_LIGHTCYAN); printf ( "TEXT_LIGHTCYAN: 0x%X\n", TEXT_LIGHTCYAN); SetConsoleTextAttribute ( h, TEXT_LIGHTRED); printf ( "TEXT_LIGHTRED: 0x%X\n", TEXT_LIGHTRED); SetConsoleTextAttribute ( h, TEXT_LIGHTMAGENTA); printf ( "TEXT_LIGHTMAGENTA: 0x%X\n", TEXT_LIGHTMAGENTA); SetConsoleTextAttribute ( h, TEXT_YELLOW); printf ( "TEXT_YELLOW: 0x%X\n", TEXT_YELLOW); SetConsoleTextAttribute ( h, TEXT_WHITE); printf ( "TEXT_WHITE: 0x%X\n", TEXT_WHITE); std::cout << std::endl; SetConsoleTextAttribute ( h, BACK_BLACK | TEXT_WHITE); printf ( "BACK_BLACK: 0x%X\n", BACK_BLACK | TEXT_WHITE); SetConsoleTextAttribute ( h, BACK_BLUE); printf ( "BACK_BLUE: 0x%X\n", BACK_BLUE); SetConsoleTextAttribute ( h, BACK_GREEN); printf ( "BACK_GREEN: 0x%X\n", BACK_GREEN); SetConsoleTextAttribute ( h, BACK_CYAN); printf ( "BACK_CYAN: 0x%X\n", BACK_CYAN); SetConsoleTextAttribute ( h, BACK_RED); printf ( "BACK_RED: 0x%X\n", BACK_RED); SetConsoleTextAttribute ( h, BACK_MAGENTA); printf ( "BACK_MAGENTA: 0x%X\n", BACK_MAGENTA); SetConsoleTextAttribute ( h, BACK_BROWN); printf ( "BACK_BROWN: 0x%X\n", BACK_BROWN); SetConsoleTextAttribute ( h, BACK_LIGHTGRAY); printf ( "BACK_LIGHTGRAY: 0x%X\n", BACK_LIGHTGRAY); SetConsoleTextAttribute ( h, BACK_DARKGRAY); printf ( "BACK_DARKGRAY: 0x%X\n", BACK_DARKGRAY); SetConsoleTextAttribute ( h, BACK_LIGHTBLUE); printf ( "BACK_LIGHTBLUE: 0x%X\n", BACK_LIGHTBLUE); SetConsoleTextAttribute ( h, BACK_LIGHTGREEN); printf ( "BACK_LIGHTGREEN: 0x%X\n", BACK_LIGHTGREEN); SetConsoleTextAttribute ( h, BACK_LIGHTCYAN); printf ( "BACK_LIGHTCYAN: 0x%X\n", BACK_LIGHTCYAN); SetConsoleTextAttribute ( h, BACK_LIGHTRED); printf ( "BACK_LIGHTRED: 0x%X\n", BACK_LIGHTRED); SetConsoleTextAttribute ( h, BACK_LIGHTMAGENTA); printf ( "BACK_LIGHTMAGENTA: 0x%X\n", BACK_LIGHTMAGENTA); SetConsoleTextAttribute ( h, BACK_YELLOW); printf ( "BACK_YELLOW: 0x%X\n", BACK_YELLOW); SetConsoleTextAttribute ( h, BACK_WHITE); printf ( "BACK_WHITE: 0x%X\n", BACK_WHITE); /* * Restore the original colors */ SetConsoleTextAttribute ( h, wOldColorAttrs); system("pause"); return 0; }
Thank you for this. Very useful. I have a question regarding background colors. The background color codes you’ve provided only make the space around the text change color. Is there any way to make the background color of the entire output screen change?
Sorry, I don’t know about that.