用LoadImage就可以了。
         CBitmap m_bitmap;
         HBITMAP hBmp;
hBmp=(HBITMAP)LoadImage(AfxGetInstanceHandle(),strfilename,IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
m_bitmap.DeleteObject();
m_bitmap.Attach(hBmp);
        CPaintDC dc(this);
CDC dcCompatible;
dcCompatible.CreateCompatibleDC(&dc);
dcCompatible.SelectObject(&m_bitmap);
CRect rect;
GetWindowRect(&rect);
dc.BitBlt(0,0,rect.Width(),rect.Height(),&dcCompatible,0,0,SRCCOPY);

解决方案 »

  1.   

    谢谢楼上的。不过我不想用loadimage,只是为了搞明白这个道理而已!
    再次谢谢!
      

  2.   

            CBitmap   bitmap;
    bitmap.LoadBitmap(IDB_BITMAP1);
    CClientDC dc(this);
    CDC   dcmem;   
    dcmem.CreateCompatibleDC((CDC*)&dc);
    dcmem.SelectObject(bitmap.m_hObject);
    dc.BitBlt(0,0,200,100,&dcmem,1,0,SRCCOPY); 
    如果改写成这个样子,就可以正常显示了。为什么呢?
      

  3.   

    好像是有点明白了,应该用CreateDIBSection。谢谢各位关注!