CListCtrl是列表控件
CImageList是图片列表控件
CListCtrl要想显示图片需要设置CImageList,关联之后,使用索引设置图片
CListCtrl *pList = new CListCtrl();
rect.left = 10;
rect.top = 30;
rect.right = clientRect.right - 10;
rect.bottom = 300;
pList->Create(WS_CHILD | WS_VISIBLE | LVS_EX_GRIDLINES | WS_CLIPSIBLINGS, rect, this, ++maxControlID);
pList->ModifyStyle(0, LVS_REPORT);
pList->SetExtendedStyle(pList->GetExtendedStyle() | LVS_EX_GRIDLINES | LVS_EX_SUBITEMIMAGES);
//图片列表,关联list
CImageList *pImageList = new CImageList();
//好像宽高只能比原图小,不能比原图大
pImageList->Create(46, 46, ILC_COLOR24 | ILC_MASK, 8, 1);
CBitmap bitmap;
CImage image;
//显示bmp,
//HBITMAP hBitmap = (HBITMAP)LoadImage(NULL, _T(".\\res\\trophy.bmp"), IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
//显示png
image.Load(_T(".\\res\\trophy.png"));
HBITMAP hBitmap = (HBITMAP)image;
bitmap.Attach(hBitmap);
pImageList->Add(&bitmap, RGB(0xff, 0xff, 0xff));
//定义表格的各列名称和宽度:
pList->InsertColumn(0, _T("姓名"), LVCFMT_CENTER, 100);
pList->InsertColumn(1, _T("学号"), LVCFMT_CENTER, 80);
pList->InsertColumn(2, _T("年龄"), LVCFMT_CENTER, 70);
//plistctrl关联pImageList
pList->SetImageList(pImageList, LVSIL_SMALL);
int listindex;
LV_ITEM lvItem;
listindex = pList->GetItemCount();
TCHAR *ptszText = new TCHAR[100];
_tcscpy(ptszText, _T("拉拉"));
lvItem.mask = LVIF_IMAGE | LVIF_TEXT;
lvItem.iItem = listindex;
lvItem.iSubItem = 0;
lvItem.iImage = 0;
lvItem.pszText = ptszText;
pList->InsertItem(&lvItem);
效果图如下