Re: Кисть - как лучше сделать
От: dony  
Дата: 13.07.05 09:19
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Ситуация такая. Есть окно. В его классе зарегистрирована некоторая кисть.

PD>Есть битмап. Его надо залить этой кистью.

PD>Делаю, естественно, GetClassLong (GCL_HBRBACKGROUND). А дальше вот такой вопрос. Там вполне может быть не HBRUSH, а номер типа COLOR_*. Если да — надо брать от него GetSysColorBrush. Если нет — и так сойдет.

PD>Вопрос — как правильно эти 2 ситуации отличить ? Сравнивать с

PD>#define COLOR_GRADIENTINACTIVECAPTION 28 (это вроде максимальное значение)


PD>не очень корректно, могут быть изменения в дальнейшем.


PD>В общем — как отличить HBRUSH от индекса цвета ?


бредовая идея, но может.

HBRUSH hBrush = GetClassLong (GCL_HBRBACKGROUND);
LOGBRUSH logBrush;
if (!GetObject(hBrush, sizeof(logBrush), &logBrush))
{
        // считай, что у тебя color
}
else
{
        // у тебя handle
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.