在ListView中加入图标的第一步是利用ListCtrl的SetImageList函数使该ListView关联到一个ImageList上面去:
CString strBmpPathSet,strBmpPathUnSet;
strBmpPathSet = "***"; //第一个图标的路径
strBmpPathUnSet = "***"; //第二个图标的路径
HBITMAP hBitmap;
CBitmap *pBitmap;
m_pImageList = new CImageList();
m_pImageList->Create (16,16,ILC_COLOR4,5,2);
//在ImageList中加入第一个位图文件
pBitmap = new CBitmap;
strBmpPathSet += "//1.bmp";
hBitmap = (HBITMAP)LoadImage(NULL,(LPCTSTR)strBmpPathSet,IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
pBitmap->Attach(hBitmap);
m_pImageList->Add(pBitmap,RGB(0,0,0));
delete pBitmap;
//在ImageList中加入第二个位图文件
strBmpPathUnSet += "//2.bmp";
hBitmap = (HBITMAP)LoadImage(NULL,(LPCTSTR)strBmpPathUnSet,IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
pBitmap = new CBitmap;
pBitmap->Attach(hBitmap);
m_pImageList->Add(pBitmap,RGB(0,0,0));
delete pBitmap;
listCtrl.SetImageList(m_pImageList,LVSIL_SMALL);
然后在响应ListView的WM_CREATE消息函数OnCreate函数里加入列名:
CListCtrl &listCtrl = GetListCtrl();
//listCtrl.EnableWindow( FALSE );
listCtrl.InsertColumn(0, _T("MCUID"), LVCFMT_CENTER, 60);
listCtrl.InsertColumn(1, _T("MCUIP"), LVCFMT_CENTER, 140);
listCtrl.SetExtendedStyle(listCtrl.GetExtendedStyle()|LVS_EX_FULLROWSELECT);
接下来在PreCreateWindow函数里使View的类型为报表试图类:
cs.style |= LVS_REPORT | LVS_SHOWSELALWAYS;
最后加入视图内容:
listCtrl.InsertItem( 0 "第一行", 0 ); //这里面后一个0代表视图显示的图标为ImageList中的第几个图标
listCtrl.SetItemText(0, 1, "第一行第二列的内容" );
listCtrl.SetItemText(0, 2, "第一行第三列的内容" );