[size=16px]我想在listctrl中的第一行第一列和第一行第三列的位置加入图标,代码如下:         m_list.SetExtendedStyle(m_list.GetExtendedStyle()|LVS_EX_SUBITEMIMAGES);
m_list.InsertColumn(0, _T("列1"), LVCFMT_LEFT,100, 100);
m_list.InsertColumn(1, _T("列2"), LVCFMT_LEFT,100, 100);
m_list.InsertColumn(2, _T("列3"), LVCFMT_LEFT,100, 100);
m_list.InsertItem(0, _T(""));
m_list.SetItemText(0, 0, _T("900"));
m_list.SetItemText(0, 1, _T("50"));
m_list.SetItemText(0, 2, _T("2"));
int nCount = m_list.GetItemCount(); m_imagelist.Create(16, 16, ILC_COLOR32|TRUE, 3, 0);
m_imagelist.Add(AfxGetApp()->LoadIcon(IDI_ICON1));
m_imagelist.Add(AfxGetApp()->LoadIcon(IDI_ICON2));
m_imagelist.Add(AfxGetApp()->LoadIcon(IDI_ICON3));
m_list.SetImageList(&m_imagelist,LVSIL_SMALL);
m_list.SetItem(nCount, 0, LVIF_IMAGE, NULL, 1, 0, 0, 0);
m_list.SetItem(nCount, 2, LVIF_IMAGE, NULL, 2, 0, 0, 0);我也设置了允许其他列插入图标的扩展风格啊,为什么还是只有第一列显示?
[/size]

解决方案 »

  1.   

    Count的计数从1开始,SetItem使用的是索引,索引从0计数,改成下面这样就三个都有图标了m_list.SetItem(nCount-1, 1, LVIF_IMAGE, NULL, 1, 0, 0, 0); 
    m_list.SetItem(nCount-1, 2, LVIF_IMAGE, NULL, 2, 0, 0, 0);
      

  2.   

    //int nCount = m_list.GetItemCount();m_imagelist.Create(16, 16, ILC_COLOR32|TRUE, 3, 0);
    m_imagelist.Add(AfxGetApp()->LoadIcon(IDI_ICON1));
    m_imagelist.Add(AfxGetApp()->LoadIcon(IDI_ICON2));
    m_imagelist.Add(AfxGetApp()->LoadIcon(IDI_ICON3));
    m_list.SetImageList(&m_imagelist,LVSIL_SMALL);
    m_list.SetItem(0, 0, LVIF_IMAGE, NULL, 1, 0, 0, 0);
    m_list.SetItem(0, 2, LVIF_IMAGE, NULL, 2, 0, 0, 0);