CDC dcScreen;
dcScreen.Attach( ::GetDC(NULL) );dcMem.CreateCompatibleDC( &dcScreen );
NewBitmap.CreateCompatibleBitmap(&dcScreen, 64, 64);
dcMem.SelectObject((CBitmap*)&NewBitmap);
dcmem.draw(.........);
m_Imagelist.Add(NewBitmap,RGB(0,0,0));//这样作错在哪?
dcScreen.Attach( ::GetDC(NULL) );dcMem.CreateCompatibleDC( &dcScreen );
NewBitmap.CreateCompatibleBitmap(&dcScreen, 64, 64);
dcMem.SelectObject((CBitmap*)&NewBitmap);
dcmem.draw(.........);
m_Imagelist.Add(NewBitmap,RGB(0,0,0));//这样作错在哪?
bm.LoadBitmap(IDB_BITMAP1);
pmyImageList->Add(&bm, RGB(0, 0, 0));是不是&的问题?
上面这句应该写成
m_Imagelist.Add(&NewBitmap,RGB(0,0,0));
ImageList的成员函数Add()的第一个参数应该是个位图对象的指针!
我想改一下这里应该就没事了!
CBitmap NewBitmap;
CDC dcMem;
CDC dcScreen;
BOOL CAboutDlg::OnInitDialog()
{
CDialog::OnInitDialog();
m_ImageList.Create(64, 64, ILC_COLOR, 500, 5);
m_List1.SetImageList(&m_ImageList, LVSIL_NORMAL);
m_List1.SetIconSpacing(CSize(80, 90));
m_List1.SetItemCount(500); dcScreen.Attach( ::GetDC(NULL) );
dcMem.CreateCompatibleDC ( &dcScreen );
NewBitmap.CreateCompatibleBitmap( &dcScreen, 64, 64); dcMem.SelectObject(&NewBitmap); dcMem.FillSolidRect( 0,0,64,64,RGB(0,255,255) );
dcMem.DrawText("123456", CRect(0,0,60,60), DT_LEFT);
HICON hicon=AfxGetApp()->LoadIcon(IDR_MAINFRAME);
dcMem.DrawIcon(32,32,hicon); ImagePos = m_ImageList.Add( &NewBitmap, RGB(0,0,0) );
m_List1.InsertItem(0, "icon.name", ImagePos); return TRUE;
}
程序运行时,在List中显示一个黑色方块,而非我自绘的图案。
错在哪??帮帮我!!!!