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));//这样作错在哪?

解决方案 »

  1.   

    CBitmap bm;
    bm.LoadBitmap(IDB_BITMAP1);
    pmyImageList->Add(&bm, RGB(0, 0, 0));是不是&的问题?
      

  2.   

    m_Imagelist.Add(NewBitmap,RGB(0,0,0));//这样作错在哪?
    上面这句应该写成
    m_Imagelist.Add(&NewBitmap,RGB(0,0,0));
    ImageList的成员函数Add()的第一个参数应该是个位图对象的指针!
    我想改一下这里应该就没事了!
      

  3.   

    vcforever(霓裳羽衣) 对不起,提出问题时&掉了,但在程序中没错。CBitmap Bitmap;
    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中显示一个黑色方块,而非我自绘的图案。
    错在哪??帮帮我!!!!