void CListCtrlEx::AddItem(short i, char* name, short j)
{
    LVITEM    lvi;    lvi.mask = LVIF_TEXT | LVIF_IMAGE | LVIF_PARAM;
    lvi.iItem = GetItemCount();
    lvi.iImage = i;
    lvi.iSubItem = 0;
    lvi.pszText = name;
    lvi.cchTextMax = 64;
    lvi.lParam = 0;
    InsertItem(&lvi);
//显示第二列图标
    lvi.mask =  LVIF_IMAGE;
    lvi.iImage = j;
    lvi.iSubItem = 1;
    lvi.cchTextMax = 64;
    SetItem(&lvi);
}
然后调用
m_imglist.Create ( 48, 48, ILC_COLOR16 | ILC_MASK, 4, 1 ); 
    m_imglist.Add (HICON(::LoadImage (AfxGetResourceHandle(), MAKEINTRESOURCE(IDI_THIS), 
                              IMAGE_ICON, 48, 48, LR_DEFAULTCOLOR ))); 
  m_userlist.SetImageList ( &m_imglist, LVSIL_SMALL ); m_userlist.AddItem(0, pStr->from.GetBuffer(0), 0); 
结果显示第一列图标,第二列没显示.为什么?谢谢!!

解决方案 »

  1.   

    CListCtrl只能在第一列显示图标。除非你自己自绘
      

  2.   

    兄弟,网上找找现成的CListCtrl派生类吧。很多的,你要的这种功能早就有过了。比如codeproject等一些提供源代码的网站上搜一下。如果你不会自绘,那么十句八句是说不明白的。自绘还是一个比较复杂的过程。当然,我自己也不会,我从来都是找现成的改写。别从头开始,那太傻了。
      

  3.   

    要设置LVS_EX_SUBITEMIMAGES扩展风格