在CListCtrl上将BMP安插到小图标上

在CListCtrl上将BMP插入到小图标上
m_picture是picture控件,输出时看不到图标,只能看到文字,请指点
CClientDC dc(this);
CBitmap bmp;
CRect rect;
CImageList imagetemp;
imagetemp.Create(64, 64, ILC_COLOR16|ILC_MASK, 2,4);
m_picture.GetWindowRect(&rect);
CDC dcMem;
bmp.LoadBitmap(IDB_BITMAP1);
dcMem.CreateCompatibleDC(&dc); //依附窗口DC创建兼容内存DC
dcMem.SelectObject(&bmp);
dcMem.StretchBlt(0,0,64,64,&dc,
0,0,rect.Width(),
rect.Height(),SRCCOPY);
dc.BitBlt(0,0,64,64,&dcMem,0,0,SRCCOPY);
m_lstctrl.SetImageList(&imagetemp,LVSIL_NORMAL );
int nindex = imagetemp.Add(&bmp,RGB(0,0,0));
CString str;
SYSTEMTIME  tt;
GetLocalTime(&tt);
str.Format("%2d年%2d月%2d日%2d时%2d分%2d秒",tt.wYear,tt.wMonth,tt.wDay,tt.wHour,tt.wMinute,tt.wSecond);
m_lstctrl.InsertItem(0,str,nindex);
dcMem.DeleteDC(); //删除DC
bmp.DeleteObject(); //删除位图
------解决思路----------------------
你的imagetemp是局部变量,即便是添加上去了等成员 函数运行结束了添加上的图标也会消失,或者你把imagetemp声明成成员变量,或者调用imagetemp.Detach()函数,将关联去掉。还有m_lstctrl.SetImageList(&imagetemp,LVSIL_NORMAL )这句话,我记得里面要用LVSIL_SMALL属性,不能用LVSIL_NORMAL 这个属性,我当时就这几个问题。