m_editFont.CreatePointFont(160, "宋体");
SetFont(&m_editFont);
CImageList m_Imagelist;
CBitmap bitmap;
m_Imagelist.Create(32, 32, ILC_COLOR24, 2, 1);
bitmap.LoadBitmap(IDB_BITMAP11);
CRect rect;
GetClientRect(&rect);
ptheList = &GetListCtrl();
ptheList->ModifyStyle(0, LVS_REPORT | LVS_SHOWSELALWAYS | LVS_SORTASCENDING);
ptheList->SendMessage(LVM_SETEXTENDEDLISTVIEWSTYLE, 0, LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT | LVS_EX_SUBITEMIMAGES);
ptheList->SetImageList(&m_Imagelist, LVSIL_SMALL);
ptheList->InsertColumn(0, "默认笔记", LVCFMT_LEFT, rect.Width(), 0);
int pos;
pos = ptheList->InsertItem(1, "123", 0);
pos = ptheList->InsertItem(2, "321", 0);
}
这样运行出来的图标是空白的。。调试发现 m_Imagelist 和 bitmap 都没有成功把位图加载进去。。为什么。。是哪里错了?
imagelist是否加载bitmap成功了没,图片资源需要能符合格式
这个要看你的资源了,ILC_COLOR24怎么写的,大小、颜色深度是不是和m_Imagelist所要求的一致。
知道问题在哪了。。应该是ImageList没有Add的原因。。
以下把成功代码贴出来:
CImageList *m_Imagelist;
m_Imagelist = new CImageList();
m_Imagelist->Create(32, 31, ILC_COLOR24, 0, 4);
CBitmap bitmap;
bitmap.LoadBitmap(IDB_BITMAP11);
m_Imagelist->Add(&bitmap, RGB(0, 0, 0));
bitmap.DeleteObject();
ptheList->SetImageList(m_Imagelist, LVSIL_SMALL);
ptheList->InsertColumn(0, "默认笔记", LVCFMT_LEFT, rect.Width(), 0);
ptheList->InsertItem(0, "默认笔记", 0);
不过调试到m_Imagelist->Add(&bitmap, RGB(0, 0, 0)); 时发现 m_ImageList和bitmap其实一直都显示<无可用信息....>
就好像图片资源没加载进去一样。。但是显示是正常的了。。这里我也不大清楚这个所谓的无可用信息是什么意思。。各位能否解释一下。。
Rebuild一下再看看呢?