对话框CListKuohaoDlg中添加m_listKuohao控件******ListKuohaoDlg.h中声明
CListCtrl m_listKuohao;
CImageList* m_ImageList;******ListKuohaoDlg.cppBOOL CListKuohaoDlg::OnInitDialog()
{
m_ImageList=new CImageList();
ASSERT(m_ImageList != NULL); 
BOOL IT=m_ImageList->Create(32, 32, ILC_COLOR16|ILC_MASK, 20, 1); 
m_ImageList->Add(AfxGetApp()->LoadIcon(IDR_MAINFRAME));//这句返回值为0,why?
         m_listKuohao.SetImageList(m_tabKuohao.m_ImageList, LVSIL_NORMAL);
}

解决方案 »

  1.   

    if(m_listKuohao.Create(LVS_SMALLICON ,rs,this,IDC_LISTFKUOHAO))
    {
    m_ImageList=new CImageList();
            ASSERT(m_ImageList != NULL); 
            BOOL IT=m_ImageList->Create(16, 16, ILC_COLOR16|ILC_MASK, 20, 1); 
            BOOL IA=m_ImageList->Add(AfxGetApp()->LoadIcon(IDR_MAINFRAME));//
             m_listKuohao.SetImageList(m_ImageList,LVSIL_SMALL);

    }改成小图标了,颜色数也匹配了,可就是显个白框框给我。
      

  2.   

    返回0是对的,因为CImageList::Add()返回的是图像索引,如果有错误返回-1。而图像索引当然是从0开始的,你添加的第一个图像自然返回0。但是你后面的SetImageList参数可不是这个m_ImageList,而是另外一个,谁知道怎么回事儿哦。
      

  3.   

    CImageList::Add() 
    Return Value 
    Zero-based index of the first new image if successful; otherwise – 1.在CListCtrl中添加记录的时候
    lvitemAdd.mask = LVIF_TEXT; 改成 lvitemAdd.mask = LVIF_TEXT|LVIF_IMAGE //不然没法显示图像
    然后添加一个lvitemAdd.iImage = n; //n就是刚才add是生成的索引号
      

  4.   

    返回0表示添加图像成功了,不成功返回-1。0是新加的图像的索引号。看MSDN。