源代码如下
其中m_wndTask是一个listctrlif (!m_wndTask.Create(WS_CHILD|WS_VISIBLE|LVS_REPORT|LVS_SHOWSELALWAYS,CRect(0,0,0,0),this,IDC_TASKLIST))
{
TRACE0("创建列表失败");
return -1;
};
m_wndTask.SetExtendedStyle(LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT);
ListView_SetExtendedListViewStyleEx(m_wndTask.GetSafeHwnd(),LVS_EX_LABELTIP,LVS_EX_LABELTIP);//当某一项太长被遮住的话,当鼠标移到这一项上时会以Hint的形式把这一项的内容显示出来 m_wndTask.ShowWindow(SW_SHOW);

CBitmap bm;
bm.LoadBitmap(IDR_MAINFRAME);
// Create image list and set in toolbar.
// Must use ILC_COLOR8 for 256-color images!
//
CImageList * pImalist;
pImalist = new CImageList;
pImalist->Create(22,20, ILC_COLOR24|ILC_MASK, 0, 22);
pImalist->Add(&bm,RGB(192,192,192));
m_wndTask.SetImageList(pImalist,LVSIL_NORMAL);
int nCol;
LVCOLUMN lvCol;
lvCol.mask = LVCF_IMAGE|LVCF_WIDTH|LVCF_SUBITEM;
lvCol.fmt =  LVCFMT_IMAGE;
lvCol.iSubItem =0;
lvCol.iImage = 1;
lvCol.cx = 30;
nCol = m_wndTask.InsertColumn(0,&lvCol);
m_wndTask.InsertColumn(1,"任务名",LVCFMT_LEFT,300);
m_wndTask.InsertColumn(2,"活动线程数",LVCFMT_LEFT,100);
m_wndTask.InsertColumn(3,"注释",LVCFMT_LEFT,200);上面这段应该是加列的标题图标的吧》? 没成功LVITEM lviItem;
lviItem.mask = LVIF_IMAGE;
lviItem.iItem = 1;
lviItem.iSubItem = 0;
lviItem.iImage = 2;
nItem = m_wndTask.InsertItem(&lviItem);
m_wndTask.SetItemText(nItem,1,szTaskName);这一段应该是加每行的图标的吧  也没成功??
为什么?? 哪位高手指点一二 感激不尽啊

解决方案 »

  1.   

    上面的兄弟不必这样吧。加入位图资源16x16
    加入变量。CImageList m_imgSmall;
    在InitiaUpdate()
    m_imgSmalll.Create(IDB_BITMAP,16,0,RGB(255,0,0));
    m_List.SetImageList(&m_imgSmall,LVSIL_SMALL);
      

  2.   

    CImageList一定要做为成员变量才行,不能是局部变量!
      

  3.   

    同意 zswzwy((←圣骑士)(恶人谷:杀手师参谋长))
      

  4.   

    LVITEM lviItem;
    lviItem.mask = LVIF_IMAGE;
    lviItem.iItem = 1;
    lviItem.iSubItem = 0;
    lviItem.iImage = 2;
    nItem = m_wndTask.InsertItem(&lviItem);
    m_wndTask.SetItemText(nItem,1,szTaskName);
    这段语句有病,可能根本显示不出来吧?
      

  5.   

    怎么你动态分配CImageList后不释放内存
      

  6.   

    zswzwy((←圣骑士)(恶人谷:杀手师参谋长))果然是高手。
      

  7.   

    CBitmap bm;
    bm.LoadBitmap(IDR_MAINFRAME);
    // Create image list and set in toolbar.
    // Must use ILC_COLOR8 for 256-color images!
    //
    CImageList * pImalist;
    pImalist = new CImageList;
    pImalist->Create(22,20, ILC_COLOR24|ILC_MASK, 0, 22);
    pImalist->Add(&bm,RGB(192,192,192));这一段直接用CImageList::Create来加载IDR_MAINFRAME位图资源。
    CImageList * pImalist;
    pImalist = new CImageList;
             pImalist ->(MAKEINTRESOURCE(IDR_MAINFRAME),22, 0,RGB(192,192,192) );
      

  8.   

    你创建了CImageList的对象,但在CImageList没有加载图标。
    楼上说得很对,可以在CImageList::Create中直接指定位图创建图标。也可以用CImageList::AddIcon来加入图标。这样就会有图标了。
      

  9.   

    一个例子http://www.codeproject.com/useritems/DriveBrowser.asp