Re: Константы (color_window+1) и color_window
От: ncode  
Дата: 25.05.07 08:05
Оценка: +1
Здравствуйте, Pavor, Вы писали:

P>Вот такой вопрос возник:

P>описываем класс окна, в поле, где задается фон окна (hbrBackground) практически во всех примерах в сети используется такой код:
P>
P>wc.hbrBackground  = (HBRUSH)(COLOR_WINDOW+1);
P>

P>Так вот вопрос: зачем +1, ведь без него фон окна также остается белым (в Windows XP)?
P>...
P>Кто знает — подскажите, плиз, а то полная неясность

Я думаю это архаичный апишный криво-хак. COLOR_WINDOW — это индекс системного цвета. В данном случае он кастуется в дескриптор HBRUSH, который соответствует некоторому объекту из системной таблицы объектов HBRUSH. По всей видимости индексы дескрипторов в этой таблице, отличаются от индексов системных цветов на 1, отсюда и "+1". Возможно индексы системных цветов начали с "нуля", а валидные дескрипторы начинаются с еденицы ...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.