我的代码原来是这样的:
this->m_olist.SetExtendedStyle( LVS_EX_FULLROWSELECT );this->m_olist.InsertColumn( 0 , "在线人数" , LVCFMT_CENTER , this->m_olist.GetStringWidth( " 在线人数" ) );

this->m_olist.InsertColumn( 1 , "当前状态" , LVCFMT_CENTER , this->m_olist.GetStringWidth( " 当前状态" ) );
我想每显示一行数据前面都能显示人的头像,如何实现?谢谢!!

解决方案 »

  1.   

    后面我是这样实现的
    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);
    }
    int CListCtrlEx::OnCreate(LPCREATESTRUCT lpCreateStruct) 
    {
    if (CListCtrl::OnCreate(lpCreateStruct) == -1)
    return -1;

    m_imgList.Create(IDB_BITMAP1, 16, 1, RGB(0, 255, 0));
    HIMAGELIST him = m_imgList.m_hImageList;
    ::SendMessage(this->m_hWnd,LVM_SETIMAGELIST,(WPARAM)LVSIL_SMALL,(LPARAM)him);
    ImageList_SetBkColor(him,CLR_NONE);

    return 0;
    }
    但是没有人头图像出现啊?请问怎么修改?谢谢!!
      

  2.   

    一段以前的程序,在ONINITDIALOG或者LISTCTRL(VIEW)的初始化里面 CWinApp *pApp = AfxGetApp();
    m_pImageLarge = new CImageList();
    ASSERT(m_pImageLarge != NULL);    // serious allocation failure checking
    m_pImageLarge->Create(32, 32, TRUE,   4, 4);
    m_pImageLarge->Add(pApp->LoadIcon(IDI_RIGHT));
    m_pImageLarge->Add(pApp->LoadIcon(IDI_WRONG));
    m_pImageLarge->Add(pApp->LoadIcon(IDI_PROBLEM));
    m_list.SetImageList(m_pImageLarge, LVSIL_NORMAL); m_pImageSmall = new CImageList();
    ASSERT(m_pImageSmall != NULL);    // serious allocation failure checking
    m_pImageSmall->Create(16, 16, TRUE,   4, 4);
    m_pImageSmall->Add(pApp->LoadIcon(IDI_RIGHT));
    m_pImageSmall->Add(pApp->LoadIcon(IDI_WRONG));
    m_pImageSmall->Add(pApp->LoadIcon(IDI_PROBLEM));
    m_list.SetImageList(m_pImageSmall, LVSIL_SMALL);
      

  3.   

    这种方法可能有点费劲,但一定能实现:)
    在使用的时候LVITEM lvitem1;
    lvitem1.mask =LVIF_IMAGE;
    lvitem1.iItem = i; //要改的ITEM
    lvitem1.iSubItem  = 0;
    m_list.GetItem(&lvitem1);
    lvitem1.iImage =stateimage; // IMAGE的序号自己分清楚
    m_list.SetItem(&lvitem1);