Сообщения, управляющие цветом диалогового окна


Органы управления и система могут отправлять сообщения, управляющие цветом тогда, когда они хотят, чтобы процедура диалогового окна рисовала фон органа управления или другого окна при помощи использования заданной кисти и цвета. Это может быть полезно тогда, когда прикладная программа отменяет использование цвета по умолчанию в диалоговых окнах и в их органах управления . Ниже перечислены управляющие цветом сообщения, которые заменяют сообщение WM_CTLCOLOR.

Орган управления отправляет управляющее цветом сообщение в процедуру диалогового окна непосредственно перед тем, как он начнет рисовать свой собственный фон. Сообщение позволяет процедуре определить, какая используется кисть и установить цвета фона и изображения. Процедура определяет кисть, путем возврата дескриптора кисти. Чтобы установить цвета фона и изображения, процедура использует функции SetBkColor и SetTextColor с дисплейным контекстом устройства органа управления. Управляющее цветом сообщение передает дескриптор дисплейного контекста устройства в процедуру в параметре сообщения wParam.

Система отправляет сообщение WM_CTLCOLORDLG процедуре диалогового окна, если она не обрабатывает сообщение WM_ERASEBKGND. Предопределенный класс диалогового окна не имеет кисти фона класса, так что это сообщение позволяет процедуре определять свой собственный фон, без необходимости включать в себя код, который выполнит эту работу.

В любом случае, когда процедура диалогового окна не обрабатывает управляющее цветом сообщение, система использует кисть с заданным по умолчанию цветом окна, который окрасит этим фоном все органы управления и окна, кроме линеек прокрутки. Приложение может извлечь заданный по умолчанию цвет окна, передавая значение COLOR_WINDOW в функцию GetSysColor. В то время, когда окрашивается фон, цвет изображения для дисплейного контекста устройства устанавливается в заданный по умолчанию цвет текста (COLOR_WINDOWTEXT). Для линеек прокрутки, система использует кисть, имеющую заданный по умолчанию цвет линейки прокрутки (COLOR_SCROLLBAR). В этом случае, цвет фона и изображения для дисплейного контекста устройства устанавливаются в белый и черный цвет, соответственно.

 

Назад в оглавление
На главную страницу

Hosted by uCoz