memBit地图.CreateCompatibleBit地图(pDC,30,30);抛出断言异常,待

memBitmap.CreateCompatibleBitmap(pDC,30,30);抛出断言错误,在线等待
我在一个view:: public CScrollView中的OnDraw(CDC* pDC)中现实位图,代码如下:
CDC memDC;
CBitmap memBitmap;
BITMAP bm;
memBitmap.LoadBitmap(IDB_BITMAP1);
memBitmap.GetObject(sizeof(bm),&bm);
memDC.CreateCompatibleDC(pDC);
memBitmap.CreateCompatibleBitmap(pDC,30,30);
pOldBmp=memDC.SelectObject(&memBitmap);
memDC.FillSolidRect(0,0,brushSize.cx,brushSize.cy,RGB(255,255,255));
pDC->SetStretchBltMode(HALFTONE);
pDC->StretchBlt(0,0,size.cx,size.cy,&memDC,0,0,bm.bmWidth,bm.bmHeight,SRCCOPY);//利用StretchBlt实现自动拉伸
memBitmap.DeleteObject();
memDC.DeleteDC();
问题是不加memBitmap.CreateCompatibleBitmap(pDC,30,30);这一句画图正常,加了之后就报断言,跳到
_CRTIMP void _cdecl _CrtDbgBreak(
    void
    )
{
    __debugbreak();
}

我断点调试,程序先到基类CView的void CView::OnPaint()中再到我的view的ondraw(),但是执行到CreateCompatibleBitmap又跳到void CView::OnPaint(),然后到ondraw()的CreateCompatibleBitmap,抛出断言,网上查了不少说是内存没有释放,感觉也没到释放的地方啊,在创建的时候就出错了
------解决思路----------------------
memBitmap.LoadBitmap(IDB_BITMAP1);
memBitmap.GetObject(sizeof(bm),&bm);
memDC.CreateCompatibleDC(pDC);
memBitmap.CreateCompatibleBitmap(pDC,30,30);

既然加载了位图,还创建什么兼容位图,前后矛盾
------解决思路----------------------
是先后顺序问题,一般都是这样的顺序的:
CreateCompatibleDC
CreateCompatibleBitmap
LoadBitmap
SelectObject
GetBitmap
FillSolidRect
DrawText
BitBlt
DeleteObject