void CScreenView::OnDraw(CDC* pDC)
{
CDocument* pDoc = GetDocument();
// TODO: 在此添加绘制代码
CDC MemDC; //首先定义一个显示设备对象
CRect rect;
GetClientRect(&rect);
MemDC.CreateCompatibleDC(pDC); BITMAPINFO *lpbi=(BITMAPINFO *)src;
tagBITMAPINFOHEADER* info_header=(BITMAPINFOHEADER *)lpbi;
HBITMAP hBitmap = CreateDIBitmap(pDC->m_hDC,info_header,CBM_INIT,src+screen.BmpInfoSize,lpbi,DIB_RGB_COLORS);
SelectObject(MemDC,hBitmap);
pDC->StretchBlt(rect.left,rect.top,rect.Width(),rect.Height(),&MemDC,rect.left,rect.top,info_header->biWidth,info_header->biHeight,SRCCOPY);
// CloseHandle(hBitmap);
MemDC.DeleteDC();
}
谁能帮我看看,图像绘制一两分钟后,就不发再绘制了!~~~~~急,内存没有上升
{
CDocument* pDoc = GetDocument();
// TODO: 在此添加绘制代码
CDC MemDC; //首先定义一个显示设备对象
CRect rect;
GetClientRect(&rect);
MemDC.CreateCompatibleDC(pDC); BITMAPINFO *lpbi=(BITMAPINFO *)src;
tagBITMAPINFOHEADER* info_header=(BITMAPINFOHEADER *)lpbi;
HBITMAP hBitmap = CreateDIBitmap(pDC->m_hDC,info_header,CBM_INIT,src+screen.BmpInfoSize,lpbi,DIB_RGB_COLORS);
SelectObject(MemDC,hBitmap);
pDC->StretchBlt(rect.left,rect.top,rect.Width(),rect.Height(),&MemDC,rect.left,rect.top,info_header->biWidth,info_header->biHeight,SRCCOPY);
// CloseHandle(hBitmap);
MemDC.DeleteDC();
}
谁能帮我看看,图像绘制一两分钟后,就不发再绘制了!~~~~~急,内存没有上升
======
这句改成DeleteObject(hBitmap);
呵呵
昨天搞错了
不应该是CloseHandle(hBitmap);