mfc中listcontrol控件无法正确显示出插入的bmp图片资源 5C

如题,但是蹊跷的是,直接使用mfc自带的框架图片“IDR_MAINFRAM”却能正确显示。

两段对比如下:

第一段是可以正确显示图片的主要代码部分,位于对话框初始化函数中:

    static CImageList imgList;
    imgList.Create(48,48,ILC_COLOR32,1,1);
    imgList.Add(AfxGetApp()->LoadIcon(IDR_MAINFRAME));
    m_List.SetImageList(&imgList,LVSIL_NORMAL);

    m_List.InsertItem(0,_T("1th Test item"));

而对应的调试结果如下图:
图片说明

第二段代码是无法显示bmp图片的:

    static CImageList imgList;
    imgList.Create(40,48,ILC_COLOR24,1,1);
    imgList.Add(AfxGetApp()->LoadIcon(IDB_BITMAP1));
    m_List.SetImageList(&imgList,LVSIL_NORMAL);

    m_List.InsertItem(0,_T("1th Test item"));

由下面的截图可以看到对应的图片ID(就是IDB_BITMAP1)没有错误:
图片说明

此时调试结果如下:

图片说明

奇怪的是楼主刚开始以为是图片大小的问题,但把imgList.Create(40,48,ILC_COLOR24,1,1);中的前两个参数调大之后仍显示空白

这我就不明白问题出在哪里了,希望路过看到的seniors指点一下,不胜感激!!!

weixin_47407328
weixin_47407328 显示出来的应该是png图片,BMP的话,定义一个CBitmap bmpTool,绑定图片ID,bmpTool.LoadBitmap(IDB_ToolLifetimePic),m_ListImageList.Create(30,23, ILC_COLORDDB | ILC_MASK,30,30),m_ListImageList.Add(&bmpTool,RGB(0,0,125)),m_List.SetImageList(&m_ListImageList, LVSIL_SMALL);就可以了,注意,Create(30,23, ILC_COLORDDB | ILC_MASK,30,30),前面一个参数比图片的长度要大的话也不能显示
22 天之前 回复
weixin_47407328
weixin_47407328 显示出来的应该是png图片,bmpTool.LoadBitmap(IDB_ToolLifetimePic);
22 天之前 回复

1个回答

weixin_42373421
玉虚宫叶少保 你好,然而你这个连接是使用的picture control,与我想用的listcontrol不符哎
大约一年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐