请教个:CListCtrl插入图片问题
大家帮我看看:
listcompany_thxd.SetExtendedStyle(LVS_EX_SUBITEMIMAGES|LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES|listcompany_thxd.GetExtendedStyle()|LVIF_IMAGE);
SetWindowLong(listcompany_thxd.m_hWnd, GWL_STYLE,(GetWindowLong(listcompany_thxd.m_hWnd, GWL_STYLE) & ~LVS_TYPEMASK) | LVS_REPORT);
CImageList m_ImageList;
for(int q=0;q<m_ImageList.GetImageCount();q++)
m_ImageList.Remove(q);
static int flag=2;
if(flag==2)
{//只调用一次SetImageList,否则出错
m_ImageList.Create(17, 17, ILC_COLORDDB||ILC_MASK, 1, 1);
}
flag=(flag+1)%2;
CBitmap *bmp;
bmp = new CBitmap[sql.GetRowNum()]; //
char abc[12];
int index;
for(int j=0;j<sql.GetRowNum();j++)
{
bmp[j].LoadBitmap(IDB_RING);
index = m_ImageList.Add(&bmp[j],RGB(255,255,255));
sprintf(abc,"index:%d\n",index);
//AfxMessageBox(abc);//测试正常
}
listcompany_thxd.SetImageList(&m_ImageList,LVSIL_SMALL);
//========================================================
int i;
int itemlist;
for(i=0;i<sql.GetRowNum();i++)
{
sql.GetRecord();
itemlist = listcompany_thxd.InsertItem(i,sql.row[0],i);
//itemlist = listcompany_thxd.InsertItem(i,sql.row[0]);
listcompany_thxd.SetItemText(itemlist,1,sql.row[1]);
listcompany_thxd.SetItemText(itemlist,2,sql.row[3]);
listcompany_thxd.SetItemText(itemlist,3,sql.row[2]);
listcompany_thxd.SetItemText(itemlist,4,sql.row[5]);
listcompany_thxd.SetItemText(itemlist,5,sql.row[6]);
listcompany_thxd.SetItem(itemlist,6,LVIF_IMAGE|LVIF_TEXT,NULL,i,0,0,0);//i也为图片索引,想在这行加图片,但只显示个白条
}
delete[] bmp;
[解决办法]
you must declare the variable m_ImageList in your header file
[解决办法]
把ImageList做为类的成员变量,而不是局部变量。