MFC 绘图CBit地图有关问题

MFC 绘图CBitmap问题
程序序列化的时候会加载大量数据。在序列化的时候,创建一张位图(CBitmap * pBmp = new CBitmap 方式创建的),在内存DC上,将数据画到这个位图上。可能有多次创建。因为每个位图能画的数据个数是一个定值,比如每个位图只能画180个数据。超过了,我就会另建一张位图。再在新建的位图上继续画,以此类推。
并且保存每次所创建的位图的指针。

显示的时候,直接拿着保存的位图指针进行显示。

问题来了,当我创建的位图在一定个数以内时,程序能正常显示。超过某个值,就不会显示。目测现在这个值是140几.也就是说我创建的位图个数超过了140几,程序就不会显示位图了。

想了好久,不知道问题出在哪里??请教高手。

序列化时画图的代码如下

CDC * pMemDC = new CDC;
CBitmap *bitmap = new CBitmap;
pMemDC->CreateCompatibleDC(pDC);
bitmap->CreateCompatibleBitmap(pDC,maxright,maxhight);
CBitmap *pOldBmp = pMemDC->SelectObject(bitmap);
pMemDC->FillSolidRect(0,0,maxright,maxhight,RGB(0,0,0));

...//绘图

vecBmp.push_back(bitmap);//将位图指针存入vector<CBiymap *>

bitmap = NULL;
pMemDC->SelectObject(pOldBmp);
pMemDC->DeleteDC();
pMemDC = NULL;
pOldBmp = NULL;

显示的代码如下

CDC * pMemDC = new CDC;
CRect rect;
GetClientRect(rect);
pMemDC->CreateCompatibleDC(pDC);
pMemDC->FillSolidRect(0,0,rect.right,rect.Height(),RGB(0,0,0));
CBitmap * pOldBitmap = pMemDC->SelectObject(vecBmp[0]);//默认选入vecBmp[0]
pDC->BitBlt(0,0,rect.right,rect.Height(),pMemDC,0,0,SRCCOPY);
pMemDC->SelectObject(pOldBitmap);
pMemDC->DeleteDC();
  pOldBitmap = NULL;
  pMemDC = NULL;