我的代码原来是这样的:
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( " 当前状态" ) );
我想每显示一行数据前面都能显示人的头像,如何实现?谢谢!!
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( " 当前状态" ) );
我想每显示一行数据前面都能显示人的头像,如何实现?谢谢!!
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;
}
但是没有人头图像出现啊?请问怎么修改?谢谢!!
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);
在使用的时候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);