如题,使用的是VS08。

解决方案 »

  1.   

    添加图像列表,用SetImageList关联到列表视图,然后插入项的时候指定图标索引或者用SetItem修改图标索引。
      

  2.   

    据个例子:
    类声明里:CImageList m_pImageList;
    CListCtrl m_List;
    OnInitDialog里面:
    m_pImageListSmall = new CImageList();
     
      if (m_pImageListSmall != NULL)
      {
      m_pImageList->Create(16, 16, ILC_COLOR32|ILC_MASK , 5, 5);
    m_pImageList->Add(pApp->LoadIcon(IDI_ICON1));
      m_pImageList->Add(pApp->LoadIcon(IDI_ICON2));
      m_pImageList->Add(pApp->LoadIcon(IDI_ICON3));
      m_pImageList->Add(pApp->LoadIcon(IDI_ICON4));
      m_pImageList->Add(pApp->LoadIcon(IDI_ICON5));
      }
    m_List.SetImageList(m_pImageList, LVSIL_SMALL);
    LVCOLUMN curColumn;
    curColumn.mask = LVCF_FMT | LVCF_ORDER | LVCF_WIDTH | LVCF_IMAGE;
    curColumn.iOrder = 0;
    curColumn.iSubItem = 0;
    curColumn.fmt = LVCFMT_COL_HAS_IMAGES;
    curColumn.cx = 30;
    m_List.InsertColumn(0,&curColumn);//这是第一列,类似的插入别的列。
    在你想插入条目的时候:
    LV_ITEM lvitem;
    lvitem.mask = LVIF_IMAGE | LVIF_PARAM | LVIF_TEXT;
    lvitem.iItem = index;
    lvitem.iSubItem = 0;
    lvitem.lParam = (DWORD)&(*qit);
    m_List.InsertItem(&lvitem);
    ------------------------------------------------
    在那一列想插入图片,初始化设置column的时候就要设置上LVCF_IMAGE,在插入条目的时候设置上LVIF_IMAGE即可。不管那一列那一行。
      

  3.   

    我在OnInitDialog里这样不能显示图标哪里错了?(经过大小的调整发现图标大小的变化被反映在列表中了但是图标本身没有显示出来!)        
    CString kkk("1234");
    CImageList abc;
    abc.Create(IDB_BITMAP2,5,1,RGB(0,0,0));
    listmember.SetImageList(&abc, LVSIL_SMALL);
    listmember.InsertItem(0,kkk);
      

  4.   

    我发觉是和BOOL Create( UINT nBitmapID, int cx, int nGrow, COLORREF crMask )中的COLORREF这个参数有关系的,写入不同的值后会有颜色出现。
    这个参数好像是指去掉某种颜色?问题是现在我该怎么设我的图片能够原原本本的显示出来呢?
      

  5.   

    abc.Create(IDB_BITMAP2,5,1,RGB(0,0,0));//你这里传入的是黑色的啊,当然不行了
    这样试试abc.Create(IDB_BITMAP2,5,1,CLR_NONE));
      

  6.   

    不行,CLR_NONE还是不能显示我原来的颜色,出来的就是颜色丢失很严重,但整个图像已经显出来了。
      

  7.   


    你先用CBitmap类的对象装入位图,然后,CImagelist设置图象为此位图。
    就可以避免图像颜色丢失。