- •Глава 8 Дочерние окна управления
- •Класс кнопок
- •Создание дочерних окон
- •Сообщения дочерних окон родительскому окну
- •Сообщения родительского окна дочерним окнам
- •Нажимаемые кнопки
- •Видимые и доступные кнопки
- •Переключатели
- •Окна группы
- •Изменение текста кнопки
- •Кнопки и фокус ввода
- •Дочерние окна управления и цвета
- •Системные цвета
- •Цвета кнопок
- •Сообщение wm_ctlcolorbtn
- •Кнопки, определяемые пользователем
- •Класс статических дочерних окон
- •Класс полос прокрутки
- •Программа colors1
- •Интерфейс клавиатуры, поддерживаемый автоматически
- •Введение новой оконной процедуры
- •Закрашивание фона
- •Окрашивание полос прокрутки и статического текста
- •Класс редактирования
- •Стили класса редактирования
- •Коды уведомления управляющих окон редактирования
- •Использование управляющих окон редактирования
- •Сообщения управляющему окну редактирования
- •Класс окна списка
- •Стили окна списка
- •Добавление строк в окно списка
- •Выбор и извлечение элементов списка
- •Получение сообщений от окон списка
- •Простое приложение, использующее окно списка
- •Список файлов
- •Использование атрибутов файлов
- •Упорядочивание списков файлов
- •Утилита Head для Windows
Системные цвета
Windows поддерживает 25 системных цветов, предназначенных для рисования различных элементов экрана. Вы можете получить и установить текущие значения этих цветов с помощью функций GetSysColor и SetSysColors. Идентификаторы, определенные в заголовочных файлах Windows, задают системный цвет. Установка системного цвета с помощью функции SetSysColors меняет его только на время текущего сеанса работы Windows.
Вы можете изменить некоторые (но не все) системные цвета, используя раздел Display окна Control Panel, или модифицируя секцию [colors] файла WIN.INI. Секция [colors] использует ключевые слова (отличные от идентификаторов функций GetSysColor и SetSysColors) для 25 системных цветов, которым соответствуют тройка чисел в диапазоне от 0 до 255, представляющая значения красного, зеленого и голубого. Следующая таблица показывает, как 25 системных цветов идентифицируются с помощью констант, используемых в функциях GetSysColor и SetSysColors, а также с помощью ключевых слов файла WIN.INI. Таблица построена последовательно в порядке возрастания значений констант COLOR_ от 0 до 24:
GetSysColor и SetSysColors |
WIN.INI |
COLOR_SCROLLBAR |
Scrollbar |
COLOR_BACKGROUND |
Background |
COLOR_ACTIVECAPTION |
ActiveTitle |
COLOR_INACTIVECAPTION |
InactiveTitle |
(продолжение)
GetSysColor и SetSysColors |
WIN.INI |
COLOR_MENU |
Menu |
COLOR_WINDOW |
Window |
COLOR_WINDOWFRAME |
WindowFrame |
COLOR_MENUTEXT |
MenuText |
COLOR_WINDOWTEXT |
WindowText |
COLOR_CAPTIONTEXT |
TitleText |
COLOR_ACTIVEBORDER |
ActiveBorder |
COLOR_INACTIVEBORDER |
InactiveBorder |
COLOR_APPWORKSPACE |
AppWorkspace |
COLOR_HIGHLIGHT |
Hilight |
COLOR_HIGHLIGHTTEXT |
HilightText |
COLOR_BTNFACE |
ButtonFace |
COLOR_BTNSHADOW |
ButtonShadow |
COLOR_GRAYTEXT |
GrayText |
COLOR_BTNTEXT |
ButtonText |
COLOR_INACTIVECAPTIONTEXT |
InactiveTitleText |
COLOR_BTNHIGHLIGHT |
ButtonHilight |
COLOR_3DDKSHADOW |
ButtonDkShadow |
COLOR_3DLIGHT |
ButtonLight |
COLOR_INFOTEXT |
InfoText |
COLOR_INFOBK |
InfoWindow |
Задаваемые по умолчанию значения этих 25 цветов обеспечиваются драйвером дисплея. Windows использует эти задаваемые по умолчанию значения до тех пор, пока они не заменяются значениями из секции [colors] файла WIN.INI, которые могут быть изменены через Control Panel.
Теперь плохие новости: хотя смысл многих из этих цветов кажется очевидным (например, COLOR_BACKGROUND — это цвет фона области desktop), использование системных цветов в Windows 95 весьма хаотично. Первые версии Windows выглядели намного проще, чем сейчас. Действительно, до появления Windows 3.0 определялись только первые 13 из приведенных выше системных цветов. В связи с возросшим применением визуально более сложных дочерних окон управления, использующих трехмерные изображения, понадобилось увеличить количество системных цветов.
