2 qq 28254507 qq_28254507 于 2016.02.20 23:13 提问

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 都没有成功把位图加载进去。。为什么。。是哪里错了?

4个回答

oyljerry
oyljerry   Ds   Rxr 2016.02.21 08:20
已采纳

imagelist是否加载bitmap成功了没,图片资源需要能符合格式

qq_28254507
qq_28254507 加载失败的。。位图都没能成功加载进去,但是我不知道格式错在哪啊。。资源就是24位的BMP
接近 2 年之前 回复
caozhy
caozhy   Ds   Rxr 2016.02.21 07:09

这个要看你的资源了,ILC_COLOR24怎么写的,大小、颜色深度是不是和m_Imagelist所要求的一致。

qq_28254507
qq_28254507 资源是24位BMP的。。ILC_COLOR24应该没错吧。。其他还有什么要求吗
接近 2 年之前 回复
qq_28254507
qq_28254507   2016.02.21 15:26

知道问题在哪了。。应该是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其实一直都显示<无可用信息....>
就好像图片资源没加载进去一样。。但是显示是正常的了。。这里我也不大清楚这个所谓的无可用信息是什么意思。。各位能否解释一下。。
图片说明

VisualEleven
VisualEleven   Ds   Rxr 2016.02.22 15:33

Rebuild一下再看看呢?

qq_28254507
qq_28254507 依然显示<无可用信息....>..但位图资源的确是显示出来了
接近 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!