MFC中CBitmap的简单复制方法 (Copy CBitmap)

在这里为大家提供一种CBitmap复制的方法

经过自己的一层封装,就形成的非常好用的CBitmap的复制工具函数

先看函数实现:

 

 

 

  1. HBITMAP CMyDialog:: CopyBitmap (HBITMAP hSourceHbitmap )
  2. {
  3.         CDC sourceDC;
  4.         CDC destDC;
  5.         sourceDC. CreateCompatibleDC ( NULL );
  6.         destDC. CreateCompatibleDC ( NULL );
  7.         //The bitmap information.
  8.         BITMAP bm = { 0 };
  9.         //Get the bitmap information.
  10.         :: GetObject (hSourceHbitmap, sizeof (bm ), &bm );
  11.         // Create a bitmap to hold the result
  12.         HBITMAP hbmResult = :: CreateCompatibleBitmap (CClientDC ( NULL ), bm. bmWidth, bm. bmHeight );
  13.  
  14.         HBITMAP hbmOldSource = (HBITMAP ):: SelectObject (sourceDC. m_hDC, hSourceHbitmap );
  15.         HBITMAP hbmOldDest = (HBITMAP ):: SelectObject (destDC. m_hDC, hbmResult );
  16.         destDC. BitBlt ( 0, 0, bm. bmWidth, bm. bmHeight, &sourceDC, 0, 0, SRCCOPY );
  17.  
  18.         // Restore DCs
  19.         :: SelectObject (sourceDC. m_hDC, hbmOldSource );
  20.         :: SelectObject (destDC. m_hDC, hbmOldDest );
  21.         :: DeleteObject (sourceDC. m_hDC );
  22.         :: DeleteObject (destDC. m_hDC );
  23.  
  24.         return hbmResult;
  25. }

 

接下来函数调用:

 

  1. //这样简单的操作就可以实现CBitmap的复制
  2. CBitmap CpyBitmap;
  3. //返回值可以检测是否图片拷贝成功
  4. CpyBitmap->Attach (CopyBitmap (SrcBitmap ) );
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值