原来的代码是这样的:BOOL CC424Dlg::OnInitDialog()
{
CDialog::OnInitDialog();
m_imglist.Create ( 32, 32, ILC_COLOR16 | ILC_MASK, 4, 1 );    m_imglist.Add (HICON(::LoadImage (AfxGetResourceHandle(), MAKEINTRESOURCE(IDI_ICON_1),
                              IMAGE_ICON, 32, 32, LR_DEFAULTCOLOR )));
 

    m_list.SetImageList ( &m_imglist, LVSIL_SMALL );
    m_list.InsertColumn ( 0, _T("Active Icons"), LVCFMT_LEFT, 0, 0 );    m_list.InsertItem ( 0, _T("The first item"), 0 );
       m_list.SetColumnWidth ( 0, LVSCW_AUTOSIZE );    m_list.SetExtendedStyle ( LVS_EX_FULLROWSELECT );
return TRUE; 
}
现在我想这样修改:
1、新建一个基于CListCtrl的CListCtrlEx类,有关代码如下 
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); 
}
2、在CC424Dlg::OnInitDialog()调用CListCtrlEx类的方法:
BOOL CC424Dlg::OnInitDialog()
{
CDialog::OnInitDialog();
m_imglist.Create ( 32, 32, ILC_COLOR16 | ILC_MASK, 4, 1 );    m_imglist.Add (HICON(::LoadImage (AfxGetResourceHandle(), MAKEINTRESOURCE(IDI_ICON_1),
                              IMAGE_ICON, 32, 32, LR_DEFAULTCOLOR )));
     m_list.SetImageList ( &m_imglist, LVSIL_SMALL );这里不知怎么调用AddItem的方法?
    return TRUE; 
}[/code]
请高手指点。谢谢!!

解决方案 »

  1.   

    我把源码上传了,可以到这里下载http://www.yuanshengkj.com/bbs/topic.asp?topic_id=1851&forum_id=39
      

  2.   

    m_list.AddItem添加你想要的一行行数据..
        m_list.AddItem(0, 1, "Row 0, Col 100", ..);    m_list.AddItem(0, 2, "1", ..);
      

  3.   

    C424Dlg.h 中加入CListCtrlEx类的头文件然后再声明 CListCtrlEx m_list.cpp中直接就 m_list.AddItem(...) 
      

  4.   

     楼主可以see
       m_list.InsertColumn ( 0, _T("Active Icons"), LVCFMT_LEFT,0,0);
    是不是因为width定义为0,所以出不来呢?因为我改过后,可以看到报表的数据和图片。
      

  5.   

     也就是增加一句定义列的宽度即可,如下:
        m_list.InsertColumn ( 0, _T("Active Icons"), LVCFMT_LEFT, 0, 0 );
        m_list.AddItem(0, "asdf", NULL);
        m_list.SetColumnWidth ( 0, LVSCW_AUTOSIZE );