今天在编写程序的时候发现程序运行之后占用内存不断的增加,从2M到4M,程序自动中止了;
后来经过一番努力,其实是很简单的问题
MFC中我的OnDraw函数
void CBallView::OnDraw(CDC* pDC)
{
CDC *pWindowDC = GetDC();
CDC m_memDC;
CBitmap m_memBmp;
//1.用于映射屏幕的内存设备环境
//获取游戏窗口的大小用于下面设置内存位图的尺寸
CRect windowRect;
GetClientRect(&windowRect);
m_nWidth = windowRect.Width();
m_nHeight = windowRect.Height();
//内存设备环境与屏幕设备环境关联(兼容)
m_memDC.CreateCompatibleDC(pWindowDC);
//内存位图与与屏幕关联(兼容),大小为游戏窗口的尺寸
m_memBmp.CreateCompatibleBitmap(pWindowDC,m_nWidth,m_nHeight);
//内存设备环境与内存位图关联,以便通过m_memDC在内存位图上作画
m_memDC.SelectObject(&m_memBmp);
// TODO: add draw code for native data here
m_pWhitePen = new CPen(PS_SOLID,1,RGB(255,255,255));
//画刷
m_pBlackBrush = new CBrush(RGB(0,0,0));
DrawGame(&m_memDC);
pDC->BitBlt(0,0,m_nWidth,m_nHeight,&m_memDC,0,0,SRCCOPY);
}
内存泄漏