MFC中CListCtrl类依靠CImageList贴图并显示不同图像
只介绍主要方法,函数的具体参数可在MSDN上查阅
-------------------------------------------
CListCtrl m_ListCtrl;
CImageList m_ImageList;
CBitmap bmp,bmp2;
.........
----------------------------------------
1.在CImageList中加载一系列图像(如添加2张)
m_ImageList.Create(48, 48, ILC_COLOR24, 4, 4);
bmp.LoadBitmap(IDB_BMP1);
m_ImageList.Add(&bmp,(CBitmap*)NULL);
bmp2.LoadBitmap(IDB_BMP2);
m_ImageList.Add(&bmp2,(CBitmap*)NULL);
此时m_ImageList包含2张图像
2.把图像加载到CListCtrl中
m_ListCtrl.SetImageList(&PatientImageList,LVSIL_SMALL);
m_ListCtrl.InsertColumn(0,"",LVCFMT_LEFT,50,0);
第二句代码将图像加载到列表的第一列中,显示的图像为m_ImageList的第一张图像,那么如何显示第2张第n张图像呢?
3.动态显示m_ImageList的图像
如在条件A成立时在第nRow行显示第2张图像
if (/*条件A*/)
{
LVITEM lvItem;
lvItem.mask=LVIF_IMAGE;
lvItem.iSubItem=0;
lvItem.iImage=1; //图像序列号,0,1,2...分别表示m_ImageList中第1,2,3...张图像
lvItem.iItem = nRow; //nRow为显示位置的行数
m_ListCtrl.SetItem(&lvItem); //完成动态显示
}