关于CListCtrl的图像列表,CImageList加载位图为何不行?
xinyu 2003-11-21 05:35:22 CToolBoxList是从CListCtrl派生的类,在OnCreate中给其添加图像列表,如果位图从资源加载,List中图像显示正常,但现在想自己动态画图,然后加载,结果List中图像却都是黑色的方块。
代码1:(显示正常)
CBitmap bmpIcons;
bmpIcons.LoadBitmap(IDC_SHORTCUTS); //位图资源
m_images.Create(32,32,ILC_COLOR8|ILC_MASK,0,10); //m_images已定义为
m_images.Add(&bmpIcons,RGB(255,0,255)); //CImageList
SetImageList (&m_images, LVSIL_NORMAL);
InsertItem (0,_T("One"),0);
InsertItem (1,_T("Two"),1);
InsertItem (2,_T("Three"),2);
InsertItem (3,_T("Four"),3);
代码2:(显示黑块)
CDC m_MemDC; //.h中定义
CBitmap m_Bitmap; //.h中定义
CDC *pDC=GetDC();
m_MemDC.CreateCompatibleDC(pDC);
m_Bitmap.CreateCompatibleBitmap(pDC,320,32);
ReleaseDC(pDC);
m_MemDC.SelectObject(&m_Bitmap);
m_MemDC.PatBlt(0,0,640,32,WHITENESS); //白色背景
//然后画10个红色的圆
CPen Pen(PS_SOLID,1,RGB(255,0,0));
CPen *pPen=m_MemDC.SelectObject(&Pen);
CRect Rect;
for(int i=0;i<10;i++)
{
Rect.SetRect(i*32,0,i*32+32,32);
m_MemDC.Ellipse(Rect);
}
m_MemDC.SelectObject(pPen);
m_images.Create (32, 32, ILC_COLOR8 | ILC_MASK, 0, 10);
m_images.Add (m_Bitmap, RGB (255, 0, 255));
SetImageList (&m_images, LVSIL_NORMAL);
InsertItem (0,_T("One"),0);
InsertItem (1,_T("Two"),1);
InsertItem (2,_T("Three"),2);
InsertItem (3,_T("Four"),3);
第二种方法可行吗? 错误在什么地方? 帮忙看看!