Re[3]: 256 цветов, палитра и функции рисования
От: Michael Chelnokov Украина  
Дата: 17.03.04 12:28
Оценка:
Здравствуйте, ksi, Вы писали:

ksi>br.CreateSolidBrush(PALETTERGB(r,g,b));

ksi>получается цвет разбитый на 16 стандартных цветов, а не чистый цвет из палитры.

Ааа, в этом смысле...
PALETTERGB явно лажает. Это и не удивительно, учитывая что он работает безотносительно к какому-либо DC.
Если Вы и так знаете индекс в палитре, то используйте PALETTEINDEX() — этот макрос переводит WORD-индекс в формат COLORREF.
Если не знаете, то "обычный" RGB() должен помочь — при выборе этой кисти цвет сам будет определяться как ближайший из возможных. Причем не обязательно из системной палитры, а изо всей доступной.

Главное — правильно обращаться с самой установкой палитры. Подробностей, к сожалению, не помню. Но помню точно что все работало как и описывалось. Правда все остальные окна на экране отображали кизяк (они, ессно, не обрабатывали сообщения об изменении аппаратной палитры), но зато мое окно рисовалось правильно
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.