Saltar al contenido

Color de texto de consola específico RGB C++

este problema se puede tratar de variadas formas, sin embargo te damos la solución más completa en nuestra opinión.

Solución:

Debe usar SetConsoleScreenBufferInfoEx para configurar esto, consulte la entrada ColorTable de la estructura CONSOLE_SCREEN_BUFFER_INFOEX.

Los colores de la consola son un proceso de dos niveles: ahí está la consola attribute, que tiene cuatro bits cada uno para el primer plano y el fondo (rojo, verde, azul e intensidad), lo que parece limitar los colores a los colores primarios y secundarios básicos. Pero estos valores se utilizan como índices de la tabla de colores para determinar el valor de visualización real. Así que piensa en el personaje. attribute bits de ‘color’ como “rojo lógico”, etc. en lugar de rojo físico. (El valor al que se asigna el atributo de carácter ‘rojo’ es en realidad rojo RGB de forma predeterminada, pero no tiene por qué serlo). Por lo tanto, siempre está limitado a 16 colores indexados; pero puede configurarlos en los 16 colores RGB completos que desee a través de ColorTable.

La tira de cuadrados de colores que ve en el cuadro de diálogo de arriba es esencialmente esa tabla de colores, y enumera los colores en su orden de atributo de carácter, el primer cuadrado es ‘negro lógico’, y así sucesivamente.

Disculpe por haber tardado un poco en responder, pero aquí está el código que desea:

CONSOLE_SCREEN_BUFFER_INFOEX info;
info.cbSize = sizeof(CONSOLE_SCREEN_BUFFER_INFOEX);

HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
GetConsoleScreenBufferInfoEx(hConsole, &info);

info.ColorTable[0] = RGB(0,0,0);
...
info.ColorTable[3] = RGB(135, 206, 235);
...
info.ColorTable[15] = RGB (25,25,25);

SetConsoleScreenBufferInfoEx(hConsole, &info);

Con este código, puede cambiar los valores de color de los 16 colores de índice a cualquier color RGB que desee.

De lo que puede imprimir la línea con el color deseado de esta manera:

SetConsoleTextAttribute(hConsole, 3);
std::cout << "Hello World!" << std::endl;

Y aquí está mi salida: Mis ventanas de salida

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *