MFC CImageList 图像列表怎么添加图标图像,我的添加不上图标图像不显示,怎么解决?
CImageList pImageList, m_StatusImage;
if (pImageList.GetSafeHandle() == NULL)
{
pImageList.Create(32, 32, ILC_COLOR8, 0, 4);
pImageList.Add(AfxGetApp()->LoadIcon(IDR_MAINFRAME));
list.SetImageList(&pImageList, LVSIL_SMALL);
list.SetImageList(&pImageList, LVSIL_SMALL);
}
if (m_StatusImage.GetSafeHandle() == NULL)
{
Image.Attach(hbmp);
Image.LoadBitmap(IDB_BITMAP1);
Image.GetBitmap(&ImageInfo);
m_StatusImage.Create(18, ImageInfo.bmHeight, ILC_COLOR16 | ILC_MASK, 0, 0);
m_StatusImage.Add(&Image, RGB(255, 0, 255));
}
list.SetImageList(&m_StatusImage, LVSIL_SMALL);
ASSERT(list.GetImageList(LVSIL_SMALL) == &m_StatusImage);
list.SetImageList(&m_StatusImage, LVSIL_NORMAL);
// Replace the line causing the error with the following code:
list.SetImageList(&m_StatusImage, LVSIL_NORMAL);
LV_ITEM lvItem;
ZeroMemory(&lvItem, sizeof(LV_ITEM));
lvItem.mask = LVIF_TEXT |LVFIF_STATE|LVIF_IMAGE;
lvItem.iItem = 1; // 插入到第一个位置
lvItem.iSubItem = 0;
lvItem.pszText = _T("示例文本");
lvItem.iImage =0; // 使用图像列表中的第一个图像索引(通常是从0开始计数)
m_list.InsertItem(&lvItem);
int index = list.InsertItem(0, _T("Item Text"));
list.SetItem(index, 0, LVIF_IMAGE, NULL, 0, index, 0, 0, NULL);
pImageList1 = new CImageList();
pImageList1->Create(32, 32, ILC_COLOR32 | ILC_MASK, 5, 5); // 创建图像列表,例如大小16x16,有5个备用空间
pImageList1->Add(AfxGetApp()->LoadIcon(IDI_ICON1)); // 假设IDB_IMAGE1是图像资源的ID
LV_ITEM lvItem1;
ZeroMemory(&lvItem, sizeof(LV_ITEM));
lvItem.mask = LVIF_TEXT | LVFIF_STATE | LVIF_IMAGE;
lvItem.iItem = 1; // 插入到第一个位置
lvItem.iSubItem = 0;
lvItem.pszText = _T("示例文本");
lvItem.iImage = 0; // 使用图像
m_list.SetImageList(pImageList1, LVSIL_SMALL);
m_list.InsertItem(&lvItem1);