用CListCtrl的时候添加图片首先把CListCtrl的样式改成热破让他,默认是ICON。
然后你需要把下面这段代码添加到InsertItem之前

  1. //在report样式下得先加列,不然不会显示
  2. m_lsCListCtrl.InsertColumn(0,_T(“文件名 “),LVCFMT_RIGHT);
  3. m_lsCListCtrl.InsertColumn(1,_T(“仪器类别”),LVCFMT_RIGHT);
  4. m_lsCListCtrl.InsertColumn(2,_T(“项目类别”),LVCFMT_LEFT);
  5. //设置列宽
  6. for(k = 0k<3;++k)
  7. m_lsCListCtrl.SetColumnWidth(k,100);
  8. //下面是为了添加图片用的
  9. //其中m_ImageList是可以全局访问的,保证随时都可以访问到
  10. m_ImageList.Create(16,16,ILC_COLOR24,5,1);
  11. CBitmap bitmap;//创建一个CBitmap对象
  12. bitmap.LoadBitmap(IDB_TIME);//IDB_TIME是一个bitmap资源的ID,可以自己添加 ID自取
  13. m_ImageList.Add(bitmap,RGB(0,128,128));//把bitmap加到m_ImageList中
  14. bitmap.Detach();//释放位图 然后添加IDB_TICK
  15. bitmap.LoadBitmap(IDB_TICK);
  16. m_ImageList.Add(bitmap,RGB(0,128,128));
  17. //设置m_lsCListCtrl的属性 这里m_lsCListCtrl是CListCtrl的control类型的变量
  18. m_lsCListCtrl.SetExtendedStyle(LVS_EX_CHECKBOXES |LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT | LVS_EX_SUBITEMIMAGES);
  19. m_lsCListCtrl.SetImageList(m_ImageList,LVSIL_SMALL);//把m_ImageList关联给m_lsCListCtrl控件
  20. //下面是添加内容
  21. int ret = m_lsCListCtrl.InsertItem(0,“HELLO”);//默认会添加到第一列
  22. m_lsCListCtrl.SetItemText(0,0,“HELL”); //在第一行的第一列修改
  23. m_lsCListCtrl.SetItemText(0,1,“HPLL”); //在第一行的第二列加修
  24. // m_lsCListCtrl.SetItem(ret,0,LVIF_IMAGE,NULL,0,0,0,0);
  25. m_lsCListCtrl.InsertItem(1,“HELLO”,0);
  26. m_lsCListCtrl.InsertItem(2,“HELLO”,1);
  27. m_lsCListCtrl.InsertItem(3,“HELLO”,0);
  28. m_lsCListCtrl.InsertItem(4,“HELLO”); //没有加图片的某人添加ID为0的图片 相当于第三个参数是0
  29. m_lsCListCtrl.InsertItem(5,“HELLO”);
  30. m_lsCListCtrl.InsertItem(6,“HELLO”);

对于新手来说,可能添加图片之后,发现图片不能显示,连文字也不能显示。这其实只是你没有设置列而已,对于report样式的CListCtrl,首先需要设置列头,就是InsertColumn。然后才会显示。

好好学习,天天向上。

Comments