HBITMAP的复制,拷贝 与 CBitmap的复制,拷贝

原创 2007年10月12日 09:35:00

HBITMAP  Cxxx::CopyBitmap(HBITMAP  hSourcehBitmap )
{
 CDC sourcedc;
 CDC destdc;
 sourcedc.CreateCompatibleDC(NULL);
 destdc.CreateCompatibleDC(NULL);
 //the   bitmap   information.
 BITMAP   bm = {0};
 //get   the   bitmap   information.
 ::GetObject(hSourcehBitmap,   sizeof(bm),   &bm);
 //   create   a   bitmap   to   hold   the   result
 HBITMAP   hbmresult   =   ::CreateCompatibleBitmap(CClientDC(NULL),   bm.bmWidth ,   bm.bmHeight );
 HBITMAP   hbmoldsource   =   (HBITMAP)::SelectObject(   sourcedc.m_hDC ,   hSourcehBitmap);
 HBITMAP   hbmolddest   =   (HBITMAP)::SelectObject(   destdc.m_hDC ,   hbmresult   );
 destdc.BitBlt(0,0,bm.bmWidth ,   bm.bmHeight ,   &sourcedc,   0,   0,   SRCCOPY   );

 //   restore   dcs
 ::SelectObject(  sourcedc.m_hDC ,   hbmoldsource   );
 ::SelectObject(  destdc.m_hDC ,   hbmolddest   );
 ::DeleteObject(  sourcedc.m_hDC );
 ::DeleteObject(  destdc.m_hDC );

 return   hbmresult;
}

 

========================================================

========================================================

在网上找了好一镇子,大部分都是说用临时CDC,Bitblt来拷贝

这个方法简单点,就是先把CBitmap强制转换到HBITMAP后再Attach()

void Cxxx::CopyBitmap(CBitmap* hSourceBitmap, CBitmap* hDescBitmap)
{
 HBITMAP HBM=(HBITMAP)hSourceBitmap->m_hObject;

 //HBITMAP HBM=(HBITMAP)hSourceBitmap->Detach();//如果希望清除掉原图资源
 //hDescBitmap = new CBitmap;


 hDescBitmap->Attach(HBM);
}
 

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

http://wupei.j2megame.org/archives/86 在这里为大家提供一种CBitmap复制的方法 经过自己的一层封装,就形成的非常好用的CBitmap的复制工具...
  • crystal_avast
  • crystal_avast
  • 2012年03月25日 15:30
  • 1705

CBitmap图像拷贝

BOOL CopyCBitmapFromSrc(CBitmap* pBitmapDest, CBitmap* pBitmapSrc) { BOOL bFlag = FALSE; BITMAP b...
  • Doubao93
  • Doubao93
  • 2016年08月17日 13:57
  • 164

Bitmap的复制和注意

Bitmap是不能通过“ A = B ”来传递的,这样只是把B的引用给了A而已 之前做截图的时候就遇到过这个问题,但是没注意,想把截图获得的bitmap给ImageView显示,然后回收。发现报错后...
  • qq_31391977
  • qq_31391977
  • 2017年11月30日 16:05
  • 94

HBitmap、Bitmap、CBitmap之间的区别与联系

一、术语的定义及含义: HANDLE :      是DIB的文件句柄,是表示了设备无关位图在内存中的区域存储代号,该句柄值是整数.是整个Windows编程的基础。一个句柄是指使用的一个唯一的整数...
  • self_mind
  • self_mind
  • 2016年02月21日 11:18
  • 815

HBITMAP与BITMAP 的区别 BMP图像的格式

HBITMAP   是句柄;   BITMAP    是实例:     typedef   struct   tagBITMAP   {              LONG       b...
  • hnust_xiehonghao
  • hnust_xiehonghao
  • 2014年07月10日 14:49
  • 15719

HICON与HBITMAP相互转换

1、将BMP转换成ICON图标 (1)方法1:
  • chenlycly
  • chenlycly
  • 2014年05月07日 22:07
  • 1690

图片分割,bitmap处理

图片分割,bitmap处理
  • isMeLook
  • isMeLook
  • 2016年11月16日 23:43
  • 281

Bitmap的复制和注意

Bitmap是不能通过“ A = B ”来传递的,这样只是把B的引用给了A而已 之前做截图的时候就遇到过这个问题,但是没注意,想把截图获得的bitmap给ImageView显示,然后回收。发现报错后...
  • qq_31391977
  • qq_31391977
  • 2017年11月30日 16:05
  • 94

VC/MFC怎样将位图CBitmap对象保存成为bmp格式文件?(你在网上找的不一定灵,看我的一定灵)

VC/MFC怎样将位图CBitmap对象保存成为bmp格式文件?   虽然说现在写程序主要依靠 Internet ,特别是 Google 搜索(不过有时候 被墙,只能凑合着用百度)。编程技...
  • yal179
  • yal179
  • 2014年06月03日 10:01
  • 1429

【框架-MFC】保存HBITMAP对象到*.bmp文件

BOOL CMyDlg::SaveBitmapToFile( HBITMAP hBitmap, CString szfilename ) { HDC hDC; //当...
  • chenlu5201314
  • chenlu5201314
  • 2016年11月23日 11:19
  • 396
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:HBITMAP的复制,拷贝 与 CBitmap的复制,拷贝
举报原因:
原因补充:

(最多只允许输入30个字)