BitBlt拷屏经验一则

 拷屏好像必须要有个Bitmap对象,不然无法复制成功,要么Load一个位图,要么CreateCompatibleBitmap创建一个兼容位图。

另:ReleaseDC 对应与 GetDC
        DeleteDC  对应与     CreateCompatibleDC
其他对象应该有类似对应关系,Get对应Release,Create对应Delete

 

 

void  CMainDlg::DoPaint()
{
    HDC dc 
= GetDC();
    HDC memDC 
= CreateCompatibleDC(dc);

    
//要用BitBlt从内存DC拷贝到设备DC似乎必须要有个Bitmap对象
    HBITMAP hBMP = CreateCompatibleBitmap(memDC, 240320);
    SelectObject(memDC,hBMP);
    RECT rc 
= {00100100};
    
    FillRect( memDC, 
&rc, CreateSolidBrush( RGB(000) ) );
    DrawText(memDC, L
"BitBlt bitmap from memory to screen"-1&rc, DT_CENTER|DT_VCENTER);
    BitBlt(dc, 
00100100, memDC, 00, SRCCOPY);

    DeleteObject(hBMP);
    DeleteDC(memDC);
    ReleaseDC(dc);
}

你可能感兴趣的:(delete)