我正在开发一个 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);