Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > COLOR_BTNFACE +1


Автор: yngwie19 15.5.2009, 16:06
Здравствуйте подскажите по поводу этой константы. Она применяется для того чтобы в определении структуры WNDCLASS  узнать цвет кнопок класса "BUTTON" ?
Код

wc.hbrBackground =(HBRUSH)(COLOR_BTNFACE +1 );


а зачем +1 ?
2) и еще вопрос почему иногда эту константу мы используем в функции GetSysColor(), а иногда просто:  wc.hbrBackground =(HBRUSH)(COLOR_BTNFACE +1 );

Автор: GremlinProg 15.5.2009, 16:51
Цитата(yngwie19 @  15.5.2009,  18:06 Найти цитируемый пост)
а зачем +1 ?

чтобы можно было идентифицировать отсутствие кисти (NULL)
все индексы системных цветов начинаются с нуля (COLOR_SCROLLBAR), вот и решили просто сдвинуть индексацию на 1

в любом случае, это некрасивый вариант,
не знаю, зачем стандартные шаблоны проекта WinAPI его подерживает
для определения нормальной системной кисти есть функция GetSysColorBrush

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)