Visual studio 2008 在MS Visual C++;2008年与MFC合作

Visual studio 2008 在MS Visual C++;2008年与MFC合作,visual-studio-2008,visual-c++,mfc,bmp,clistctrl,Visual Studio 2008,Visual C++,Mfc,Bmp,Clistctrl,我正在开发一个MFC应用程序。我正在使用Visual Studio处理自己的.bmp图像。我通过“添加资源”对话框导入bmp,给它一个唯一的名称并创建一个CImageList。然后,我在列表控件中设置图像列表: CListCtrl m_CIDList; CImageList m_ImgList; //......... m_ImgList.Create(IDB_MYBITMAP, 15, 0, RGB(255, 255, 255)); m_CIDList.SetImageList(&

我正在开发一个MFC应用程序。我正在使用Visual Studio处理自己的.bmp图像。我通过“添加资源”对话框导入bmp,给它一个唯一的名称并创建一个CImageList。然后,我在列表控件中设置图像列表:

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的外观:

当图标显示在列表控件中时,只有少数红色显示,所有绿色显示为灰色

我不太清楚发生了什么,有人知道发生了什么吗

解决方案更新

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);

创建图像列表且未给出颜色值时,默认颜色模式为
ILC_COLOR4
,该模式仅允许图像使用16种预定义颜色。位图中的所有颜色都映射到这16种颜色


使用
ILC\u COLOR24
全色位图。

创建图像列表且未给出颜色值时,默认颜色模式为
ILC\u COLOR4
,该模式仅允许图像使用16种预定义颜色。位图中的所有颜色都映射到这16种颜色


使用
ILC\U COLOR24
查看全色位图。

在Visual studio中不要打开/编辑超过16种颜色的位图。这是一个“背后”的痛苦,也是我对VS的主要不满之一。不要在Visual studio中打开/编辑超过16种颜色的位图。这是一个痛苦的“背后”和我的一个主要宠物愤怒与VS工作。