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);
}
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值