2012-06-28 2 views
1

Я разрабатываю приложение MFC. Я работаю с собственным изображением .bmp с Visual Studio. Я импортирую bmp через диалог добавления ресурсов, даю ему уникальное имя и создаю CImageList. Затем я устанавливаю список изображений в элементе управления списком:Проблемы с цветами при работе с изображениями .bmp в MS Visual C++ 2008 с MFC

CListCtrl m_CIDList; 
CImageList m_ImgList; 

//......... 

m_ImgList.Create(IDB_MYBITMAP, 15, 0, RGB(255, 255, 255)); 
m_CIDList.SetImageList(&m_ImgList, LVSIL_STATE); 

Проблема у меня странная. Появятся только определенные цвета, обычно только красные и серые. Я пробовал использовать разные Бит Глубины, но это ничего не изменило. Вот что ВМР выглядит в редакторе изображений в VS:

BMP image in editor

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

Я не совсем уверен, что происходит, кто-нибудь имеет представление о том, что происходит?

Решение Update

m_ImgList.Create(15, 15, ILC_MASK | ILC_COLOR24, 0, 0); 
CBitmap bmp; 
bmp.LoadBitmap(IDB_MYBITMAP); 
m_ImgList.Add(&bmp, RGB(255, 255, 255)); 
m_CIDList.SetImageList(&m_ImgList, LVSIL_STATE); 
+1

Никогда не открывайте и не редактируйте растровые изображения с более чем 16 цветами в Visual Studio. Это боль в «позади», и один из моих главных домашних пиздок работает с VS. – Max

ответ

4

Когда список изображений создаются и значение цвета не задано, режим по умолчанию цвета ILC_COLOR4, который позволяет только 16 предопределенных цветов для изображения. Все цвета в вашем растровом изображении сопоставляются с этими 16 цветами.

Используйте ILC_COLOR24 для полноцветных растровых изображений.

 Смежные вопросы

  • Нет связанных вопросов^_^