CImageList m_ImageList;
m_ImageList.Create(16,16,ILC_COLOR32,2,0);
m_list.SetImageList(&m_ImageList,LVSIL_NORMAL);   
CBitmap   cBmp;
cBmp.LoadBitmap(IDB_BITMAP2); 
m_ImageList.Add(&cBmp,(255,0,255));
cBmp.DeleteObject();   
cBmp.LoadBitmap(IDB_BITMAP2); 
m_ImageList.Add(&cBmp,(255,0,255));
cBmp.DeleteObject(); m_list.InsertItem(0,"文字1",0);
m_list.InsertItem(1,"文字2",1);以上代码只能显示文字,图标怎么也显示不出来,有那位高手帮忙看看.

解决方案 »

  1.   

    你都DeleteObject(); 不在内存中了还怎么显示
      

  2.   

    你怎么又是位图又是图标的,加两次以del两次,白忙啊,不能放最后去吗?
      

  3.   

    // draw tree "My Computer"
    TV_INSERTSTRUCT TreeCtrlItem;
    TreeCtrlItem.hParent = TVI_ROOT;
    TreeCtrlItem.hInsertAfter = TVI_LAST;// don't use TVI_SORT;
    TreeCtrlItem.item.mask = TVIF_TEXT|TVIF_IMAGE|
                         TVIF_SELECTEDIMAGE|TVIF_CHILDREN;//|TVIF_STATE;
    TreeCtrlItem.item.pszText= m_MyComputer;
    TreeCtrlItem.item.cchTextMax = MAX_PATH;
    TreeCtrlItem.item.cChildren=1;// has child show "+"
    //
        HRESULT hr;
    LPMALLOC lpMalloc;
        hr=::SHGetMalloc(&lpMalloc);
        if (FAILED(hr)) return TRUE;
    // get pidl of "My Computer"
        LPITEMIDLIST  lpidl=NULL;  // pidl of "My Computer"
    hr=SHGetSpecialFolderLocation(NULL,CSIDL_DRIVES,&lpidl);
        if (FAILED(hr)) return TRUE;
    // icons and "My Computer"
    SHFILEINFO    sfi;
    SHGetFileInfo((LPCSTR)lpidl,0,&sfi,sizeof(SHFILEINFO),SHGFI_PIDL | 
    SHGFI_DISPLAYNAME | SHGFI_SYSICONINDEX | SHGFI_SMALLICON);
    TreeCtrlItem.item.iImage = sfi.iIcon;
    _tcscpy(m_MyComputer,sfi.szDisplayName);
    //
    SHGetFileInfo((LPCSTR)lpidl,0,&sfi,sizeof(SHFILEINFO),SHGFI_PIDL | 
    SHGFI_SYSICONINDEX | SHGFI_SMALLICON | SHGFI_OPENICON);
    TreeCtrlItem.item.iSelectedImage = sfi.iIcon;
    // insert root
    HTREEITEM hTreeItem1 = m_Tree.InsertItem(&TreeCtrlItem);
    TreeCtrlItem.hParent = hTreeItem1;
      

  4.   

    DeleteObject()方法放到哪个位置,还是将这个方法去掉,两种方法都试了还是不行,能不能说的具体点
      

  5.   

    这样产生imagelist:
    CBitmap bitmap;
    UINT nID;
    // images 
    ImagelistList.Create(16,16,ILC_COLOR8 | ILC_MASK,6,4); 
    //
    Imagelist.Create(16,16,ILC_COLOR8 | ILC_MASK,6,4); 
    for (nID=IDB_DIR;nID<=IDB_09;nID++) //0-9  
    {
    bitmap.LoadBitmap(nID);
    Imagelist.Add(&bitmap,(COLORREF)0xFFFFFF);
    bitmap.DeleteObject();
    }
    LeftTree.SetImageList(&Imagelist,TVSIL_NORMAL);