下面的代码总是错误,大家试试看,放入OnDraw。  CDC MemDC; 
 CBitmap MemBitmap;//

 const nWidth=300;
 const nHeight=197;

  MemDC.CreateCompatibleDC(NULL);
  MemBitmap.CreateCompatibleBitmap(pDC,nWidth,nHeight);
 
MemBitmap.LoadBitmap (IDB_1);  // 这一句删了就对了!! CBitmap *pOldBit=MemDC.SelectObject(&MemBitmap);
 
MemDC.FillSolidRect(0,0,nWidth,nHeight,RGB(255,255,255));
 
MemDC.MoveTo(0,0);
MemDC.LineTo(300,300 );上面那句话删了就对了!不知为何!
 
pDC->BitBlt(0,0,nWidth,nHeight,&MemBitmap,0,0,SRCCOPY);
 
MemBitmap.DeleteObject();
MemDC.DeleteDC();

解决方案 »

  1.   

    晕!抄了这一句: MemDC.FillSolidRect(0,0,nWidth,nHeight,RGB(255,255,255));
    但是还有个问题:CBitmap不能加载外部DIB位图?那如果要显示外部f:\a.bmp ,怎么办?
     不要逐点SetPixel!
      

  2.   

    HBITMAP hBitmap = (HBITMAP)LoadImage(...);
    CBitmap *pBitmap = new CBitmap;
    pBitmap = CBitmap::FromHandle(hBitmap);
    MemDC.SelectObject(pBitmap);
      

  3.   

    bitmap已经创建了,怎么再用LoadBitmap创建一次
      

  4.   

    to :KeepRun(VOID)
    不要凭想象!