void  CListMemberWnd::OnPaint()    
{  
           CPaintDC  dc(this);  
           CRect  rect;  
           this->GetClientRect(&rect);  
 
           CDC*   pDCMem  =  new  CDC;  
           pDCMem->CreateCompatibleDC(  &dc  );  
 
           pDCMem->TextOut(0,0,  "abc");  
           pDCMem->Draw3dRect(  rect,  RGB(0,0,0),  RGB(0,0,0)  );      
 
           dc.BitBlt(  0,  0,  rect.Width(),  rect.Height(),  pDCMem,  0,  0,  SRCCOPY  );  
}  
很简单的函数,可是什么都没法显示,请问为什么?谢谢! 

解决方案 »

  1.   

    try as following:
    pDCMem->Draw3dRect(  rect,  RGB(0,0,0),  RGB(0,0,0)  ); 
    pDCMem->TextOut(0,0,  "abc");      
      

  2.   

    加上
    CBitmap bmp;
    bmp.CreateCompatibleBitmap(&dc, rect.Width(), rect.Height());
    CBitmap* pold = pDCMem->SelectObject(&bmp);
    建议后面加上
    pDCMem->SelectObject(pold);
    pDCMem->DeleteDC();
    delete pDCMem;
      

  3.   

    pDCMem应该选入一个Bitmap先:           CDC*   pDCMem  =  new  CDC;  
               pDCMem->CreateCompatibleDC(  &dc  );  
               
               CBitmap *pBitmap = new CBitmap;
               CBitmap *pOldBmp;
               pBitmap->CreateCompatibleBitmap(pDCMem,...);
               pOldBmp = pDCMem->SelectObject(pBitmap);