CListCtrlEx是基于CListCtrl,有关代码如下
void CListCtrlEx::AddItem(short i, char* name, char* text) 

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_TEXT; 
lvi.pszText = text; 
lvi.cchTextMax = 32; 
lvi.iSubItem = 1; 
SetItem(&lvi); 
}
现在的问题是
1、怎么在添加一栏用来显示图标?上面的代码如何修改?
2、如何导入ico图标,并调用AddItem的方法?
谢谢!!

解决方案 »

  1.   

    现在我在dlgBar对话框中放入列表控件m_olist。并在CMainFrame中调用m_olist显示用户名代码如下: 
    void CMainFrame::OnAddMember(WPARAM wParam, LPARAM lParam) 

    CString* pStr = (CString*)wParam; 
    this->dlgBar.m_olist.AddItem((short)lParam, pStr->GetBuffer(0), NULL); 
    pStr->ReleaseBuffer(); } 
      

  2.   

    这里怎么导入图标,并调用AddItem的方法?
      

  3.   

    把图标放进CImageList,然后SetImageList,lvi.iImage这个参数就是控制 ImageList索引的,具体看看msdn
      

  4.   

    参考下别人的代码吧
    http://blog.csdn.net/kmlxk/archive/2007/09/29/1806412.aspx
      

  5.   

    http://www.diybl.com/course/3_program/c++/cppsl/2008118/96672.html
      

  6.   

    m_imgList.AddIcon(hIcon);//hIcon就是你要加进去的图标!第一次加的就是第0个,依此类推,需要几种ICON就都加进去
    SetImageList(m_imgList, LVSIL_SMALL);
    如lvi.iImage = 0, 就是给这个ITEM绘制第0个icon。
    我觉得这样应该说的很清楚了吧,楼主!记得在ADDITEM/INSERTITEM之前处理这个哈
      

  7.   

    我是这样做的
    void CMainFrame::OnAddMember(WPARAM wParam, LPARAM lParam)
    {
    CImageList m_imgList;
    m_imgList.AddIcon(hIcon);
       SetImageList(m_imgList, LVSIL_SMALL); 
       
    CString* pStr = (CString*)wParam;
    this->dlgBar.m_olist.AddItem((short)lParam,pStr->GetBuffer(0), NULL); pStr->ReleaseBuffer();}
      

  8.   

    m_imgList.Create()里面记得用8位色(参数自己看MSDN),再不行,我喊楼主老大了!