void CLoadView::OnDraw(CDC* pDC)
{
CLoadDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return; // TODO: 在此处为本机数据添加绘制代码
m_bitmap.LoadBitmap(IDB_BITMAP1);
dcCompatible.CreateCompatibleDC(pDC);
dcCompatible.SelectObject(&m_bitmap);
pDC->BitBlt(10,10,50,50,&dcCompatible,10,10,SRCCOPY);}我只是在ondraw函数里面添加了这些而已.还有在我的view类下添加了这些成员变量
public:
CBitmap m_bitmap;
CDC dcCompatible;
在vs2008 环境下
拉伸窗口时出现 debug assertion failed!
file:f/dd/vctools/vc7libs/ship/atlmfc/src/mfc/wingdi.cpp
line:1156

解决方案 »

  1.   

    m_bitmap只用LoadBitmap一次,这样你每次拉伸重绘OnPaint都Load了一次
      

  2.   

    你可以在OnInitialUpdate里面LoadBitmap
      

  3.   

    那请问下..我的loadbitmap哪里放才合适呢?我初学mfc,现在赶着做计算机仿真.
      

  4.   


    但是我的view类下没有OnInitialUpdate函数..
      

  5.   

    m_bitmap.DeleteObject();
    dcCompatible.DeleteDC();m_bitmap.LoadBitmap(IDB_BITMAP1);
    dcCompatible.CreateCompatibleDC(pDC);
    dcCompatible.SelectObject(&m_bitmap);
    pDC->BitBlt(10,10,50,50,&dcCompatible,10,10,SRCCOPY);双缓冲的话,m_bitmap和dcCompatible都没有必要定义为成员变量
      

  6.   


    void CLoadView::OnInitialUpdate() {
    CView::OnInitialUpdate();    m_bitmap.LoadBitmap(IDB_BITMAP1);
    }加入了..但是还是提示相同的错误
      

  7.   

    OnPaint里面那句注释掉没?
    dcCompatible道理也是一样,你设为局部的