在ListCtrl控件中插入图标

在ListCtrl控件中插入图标

值得注意的是:关联到ListCtrl的CImageList的生存时间要长于或等于你显示图标的ListCtrl的生存时间。也就是原博客中提到的:“顺便说一句,准备附属到CListCtrl控件的CImageList对象必须是全局性的,比如可以是类的成员,否则就算其他操作都都正确也看不到图标。”

m_img_list定义为对话框的成员。下面是部分代码


m_relist.SetExtendedStyle(LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT | LVS_EX_SUBITEMIMAGES);
m_relist.ModifyStyle(0, LVS_REPORT);
m_relist.InsertColumn(0, (CString)"识别结果", LVCFMT_LEFT, 200);//插入列
m_img_list.Create(16, 16, ILC_COLOR4, 5, 5);
m_img_list.Add(AfxGetApp()->LoadIcon(IDR_MAINFRAME));//加载图标
m_relist.SetImageList(&m_img_list, LVSIL_SMALL);//关联图片列表

LV_ITEM lvitem;
memset((char *)&lvitem, 0, sizeof(LV_ITEM));
lvitem.mask = LVIF_TEXT | LVIF_IMAGE | LVIF_STATE;
lvitem.iItem = 1;//行标
lvitem.iSubItem = 0;
lvitem.stateMask = 0;
lvitem.iImage = 0;    
lvitem.pszText = TEXT("川A f4213");//(LPSTR)(LPCSTR)Name[i];
m_relist.InsertItem(&lvitem);

你可能感兴趣的:(在ListCtrl控件中插入图标)