Thursday, January 6, 2011

Цвет текста и фона в консоли

Для того чтобы в консоль вывести текст с выбранным цветом текста и фона необходимо написать следующий код:

#include <stdio.h>
#include <windows.h>

void SetColor(DWORD color)
{
  HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
  SetConsoleTextAttribute(hConsole, color);
}

void main()
{
  SetColor(FOREGROUND_RED | FOREGROUND_INTENSITY);
  printf("Red\n");
  SetColor(FOREGROUND_GREEN | FOREGROUND_INTENSITY);
  printf("Green\n");
  SetColor(FOREGROUND_BLUE | FOREGROUND_INTENSITY);
  printf("Blue\n");

  SetColor(BACKGROUND_RED | BACKGROUND_GREEN | BACKGROUND_BLUE | BACKGROUND_INTENSITY);
  printf("White\n");

  SetColor(0x0F);
  printf("\n");
}

* This source code was highlighted with Source Code Highlighter.
Это даст следующий эффект:


Видно, что белый цвет получается путем смешивания красного, зеленого и синего цветов.
В коде, можно также задать цвет, передав его в числовом формате.
Командная строка по команде color\? подсказывает возможные доступные цвета:

0 = Черный  8 = Серый
1 = Синий   9 = Светло-синий
2 = Зеленый A = Светло-зеленый
3 = Голубой B = Светло-голубой
4 = Красный C = Светло-красный
5 = Лиловый D = Светло-лиловый
6 = Желтый  E = Светло-желтый
7 = Белый   F = Ярко-белый

Можно задавать цвет фона и текста в шестнадцатеричном формате, для этого используется две цифры. Первая цифра определяет цвет фона, а вторая - цвет текста.

No comments:

Post a Comment