К Т П           План занятия                                                              1                                           Страницы  | 1 | | 2 | | 3 | | 4 | | 5 | | 6 | | 7 | | 8 | | 9 |

3. Буфер экрана

Буфер экрана является двумерным массивом, элементы которого представляют собой записи типа:
typedef struct _CHAR_INFO {
  union {
    WCHAR UnicodeChar;
    CHAR AsciiChar;
   } Char;
  WORD Attributes;
} CKAR_INFO, *PCHAR_INFO;

где объединение char содержит символ, представленный в коде Unicode или ASCII, а поле Attributes определяет цвет фона и цвет текста, которыми выводятся символы на экран дисплея. Это значение может быть равно о, что обозначает фон — черный, а цвет — белый, или любой комбинации из следующих констант:
- BACKGROUND_BLUE — фон синий;
- background_green — фон зеленый;
- BACKGROUND RED — фон Красный;
- BACKGROUND_INTENSITY — фон яркий;
- FOREGROUND_BLUE — текст синий;
- foreground_green — текст зеленый;
- foreground_red — текст красный;
- FOREGROUND_INTENSITY — текст яркий.

Цвет фона и цвет текста будем называть атрибутами тексга. Сделаем несколько замечаний относительно использования этих констант. Цвет фона и цвет текста выбираются как комбинация базовых цветов синего, зеленого и красного. То есть в этом случае используется цветовая модель RGB. Можно подсчитать, что всего существует семь возможных комбинаций из трех цветов. Белый цвет определяется комбинацией всех трех цветов. Если сюда добавить черный цвет, который определяется как побитовое отрицание белого цвета, то всего существует восемь возможных вариантов, как для цвета фона, так и для цвета текста.

Теперь обсудим использование констант background_intensity и foreground intensity, задающих яркость. Обычно если окно консольного приложения имеет фокус ввода, то фон и текст выводятся на экран яркими цветами, что и задается этими константами. Если же окно не имеет фокус ввода, то его фон и текст выводятся на экран приглушенными цветами.

 

 


Предыдущая        В начало страницы       Следующая
3