问题描述
- MFC CListView 加载小图标的问题
-
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一下再看看呢?
时间: 2024-12-30 05:12:10