在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, "第一行第三列的內容" );