BOOL bRes;
    m_hImageList=ImageList_Create(16,16,ILC_COLOR32,0,5);
    if(m_hImageList==NULL)
    {
        MessageBox("Error 1");
        return TRUE;
    }
    bRes=m_ImageList.Attach(m_hImageList);
    if(bRes==FALSE)
    {
        MessageBox("Error 2");
        return TRUE;
    }
    bRes=m_image.LoadBitmap(IDB_BITMAP1);
    if(bRes==FALSE)
    {
        MessageBox("Error 3");
        return TRUE;
    }
    m_ImageList.Add(&m_image,RGB(0,0,0));    LONG lStyle=::GetWindowLong(m_ctrlList.m_hWnd,GWL_STYLE);
    ::SetWindowLong(m_ctrlList.m_hWnd,GWL_STYLE,LVS_REPORT | lStyle);
    m_ctrlList.SetImageList(&m_ImageList,LVSIL_NORMAL);
    m_ctrlList.InsertItem(0,"A");
    m_ctrlList.InsertItem(0,"B");
    m_ctrlList.InsertItem(0,"C");
    m_ctrlList.InsertItem(0,"D");
    m_ctrlList.InsertItem(0,"E");
    UpdateData(FALSE);
    
    CString str;
    str.Format("The item count: %d",m_ctrlList.GetItemCount());
    MessageBox(str);以上是所有的代碼,最後MessageBox顯示出來,確實有5個Item在裡面了,
但是ListCtrl裡面就是沒圖標,或者是小框框.
其中IDB_BITMAP是16色的Bitmap,我把它修改成24bits的bitmap也不行.

解决方案 »

  1.   

    view 小图标,大图标,列表,报告?
      

  2.   

    我想顯示像ACDSee那樣的,能有許多的小框框來預覽圖片,上面就是相關的一些測試代碼,但是為甚麼,我的ListCtrl中沒能顯示,卻顯示了一個灰色的長條.
      

  3.   

    m_ctrlList.InsertItem(0,"A",1);少了一参数,没有指定显示图象的索引.
      

  4.   

    要根据msdn的参数类型设置,检查 item的参数,还有create CimageList与CListCtrl时参数是否设对了,特别是将listctrl.setimagelist()中的参数。create与setimagelist中设置的类型要一置。此外,如果你的listctrl的类型是从CListCtrl派生出的一个新类,要注意不要重载其OnPaint()函数。
      

  5.   

    太简单的问题了    m_ctrlList.SetImageList(&m_ImageList,LVSIL_NORMAL);修改为    m_ctrlList.SetImageList(&m_ImageList,LVSIL_SMALL);
      

  6.   

    如果你想做AcdSee那样的界面不能使用REPORT风格的List,应该使用大图标风格的,而且AcdSee的图标是根据图像内容自己画的,不是用ImageList这么简单哦
      

  7.   

    你看到的那个长条是report list的header控件,就是点了可以排序的那种东西,因为你没有InsertColumn,所以看起来是一个长条没有按钮在上面。