我在类CObserveView中定义了两个全局变量:
CDC memDC;
CRect rcClient;
在内存中画图的操作如下:
Bool CObserveView::DrawTempBitmap()
{
CClientDC clientDC(this);
memDC.DeleteDC( );
memDC.CreateCompatibleDC(&clientDC); GetClientRect(&rcClient); for (int j = 0;j < iImageAllCnt;j ++)
{
CBitmap memBitmap;
memBitmap.CreateCompatibleBitmap(&clientDC,
rcClient.Width(),
rcClient.Height());
memDC.SelectObject(&memBitmap); for(int i=0; i<300; i++)
{
for(int j=0; j<300; j++)
{
memDC.SetPixel(rcClient.left+ j,
rcClient.top + i,GetPixelRGBInfo(i,j,pclsImageData)); }
} memBitmap.DeleteObject();
}然后在CObserveView::Ondraw(CDC *pDC)
中实现
{
pDC->BitBlt(0,0,rcClient.Width(),
rcClient.Height(),
&memDC,-15,-15,SRCCOPY);
pDC->SetBkMode(TRANSPARENT);
}在CObserveView::~CObserveView()
{
if(memDC)
{
memDC.DeleteDC();
}}为什么我程序在退出的时候,有内存泄漏呢?我还需要释放什么对象麽?
CDC memDC;
CRect rcClient;
在内存中画图的操作如下:
Bool CObserveView::DrawTempBitmap()
{
CClientDC clientDC(this);
memDC.DeleteDC( );
memDC.CreateCompatibleDC(&clientDC); GetClientRect(&rcClient); for (int j = 0;j < iImageAllCnt;j ++)
{
CBitmap memBitmap;
memBitmap.CreateCompatibleBitmap(&clientDC,
rcClient.Width(),
rcClient.Height());
memDC.SelectObject(&memBitmap); for(int i=0; i<300; i++)
{
for(int j=0; j<300; j++)
{
memDC.SetPixel(rcClient.left+ j,
rcClient.top + i,GetPixelRGBInfo(i,j,pclsImageData)); }
} memBitmap.DeleteObject();
}然后在CObserveView::Ondraw(CDC *pDC)
中实现
{
pDC->BitBlt(0,0,rcClient.Width(),
rcClient.Height(),
&memDC,-15,-15,SRCCOPY);
pDC->SetBkMode(TRANSPARENT);
}在CObserveView::~CObserveView()
{
if(memDC)
{
memDC.DeleteDC();
}}为什么我程序在退出的时候,有内存泄漏呢?我还需要释放什么对象麽?
你在什么地方定义 pclsImageData?