CComboBoxEx 添加CImageList 失败, 求大神答疑解惑

加菲猫喝汽水 2013-09-27 01:19:34
CImageList imgList;
imgList.Create( 48,44, ILC_COLOR32, 0, 11);//其实这个我不知道对不对,我的图片尺寸是48*44,第三个参数我也不知道是不是这个我看网上别人都填这个,第四个参数也不知道为什么是0,第5个参数代表有11个图片资源
CBitmap *bmp=new CBitmap;
CString pstr;
for(int iz=0; iz <11; iz++)
{
pstr.Format("F:\\Works\\Tools\\res\\combo\\%d.bmp", iz);
bmp->m_hObject=(HBITMAP)LoadImage( NULL, pstr, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE );
imgList.Add(bmp,RGB(0,0,0));//这里返回正常,从0到11.表示图片加载没问题
}
delete bmp;
CImageList* lidk = m_combo_detType.SetImageList(&imgList);//这里我看了下lidk指针是null,看msdn上给介绍说null就是调用失败了,不知道为什么就失败了,别人也都是这么调用的啊.
list<CString> listStr;
listStr.push_back(_T("红外"));
listStr.push_back(_T("烟感"));
listStr.push_back(_T("门磁"));
listStr.push_back(_T("气感"));
listStr.push_back(_T("水侵"));
listStr.push_back(_T("紧急按钮"));
listStr.push_back(_T("遥控器"));
listStr.push_back(_T("声音报警器"));
listStr.push_back(_T("光报警器"));
listStr.push_back(_T("声光报警器"));
listStr.push_back(_T("键盘"));
int iSize = listStr.size();
list<CString>::iterator it;
it = listStr.begin();
COMBOBOXEXITEM cbi;
for (int i = 0;i<11;i++)
{
cbi.iItem = i;
cbi.iImage = i;
cbi.iOverlay = i;
cbi.iSelectedImage = i;
cbi.mask = CBEIF_IMAGE | CBEIF_TEXT | CBEIF_SELECTEDIMAGE;
cbi.pszText = (LPSTR)(LPCTSTR)(*it);
it++;
int nItem = m_combo_detType.InsertItem(&cbi);
ASSERT(nItem == i);
}
m_combo_detType.SetCurSel(0);

程序执行的结果是组合框显示没有问题, 但是下拉列表里的项没有显示出图片
SetImageList()的时候返回NULL了,显示不出来也是情有可原的,但是我不知道SetImageList()调用失败了呢???
求大神解答
...全文
90 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
加菲猫喝汽水 2013-09-28
  • 打赏
  • 举报
回复
引用 1 楼 zgl7903 的回复:
CImageList imgList;不要使用局部的
对就是这个原因
zgl7903 2013-09-27
  • 打赏
  • 举报
回复
CImageList imgList;不要使用局部的

15,976

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧