【转】CBitmap和HBITMAP的区别及相互转换方法

hbitmap是bitmap的指针,

msdn中:Handle to a bitmap.typedef HANDLE HBITMAP;

cbitmap是mfc中封装bitmap的类;

msdn中:Encapsulates(囊括) a Windows graphics device interface (GDI)bitmap and provides member functions to manipulate(操作) the bitmap.

class CBitmap : public CgdiObject 

 转化方法两种,Attach和FromHandle:

 

 
   
1 CBitmap bmp;
2 bmp.LoadBitmap(IDB_BITMAP1);
3 HBITMAP hbm = (HBITMAP)bmp;
4 CBitmap bmp1;
5 bmp1.Attach(hbm);
6
7 HBITMAP = CBitmap.m_hObject
8 CBitmap * = CBitmap.FromHandle(HBITMAP)
9
10   // 已知HBITMAP hbit;
11   CBitmap cb;
12 cb.FromHandle(hbit);
13
14   // 已知CBitmap cb;
15   HBITMAP hbit = (HBITMAP)cb;
16
17 CBitmap bmp;
18 HBITMAP hBmp;
19   // 相互转换:
20   hBmp = (HBITMAP)bmp.GetSafeHandle();
21 bmp.Attach(hBmp);

 

注意点:

Attach和FromHandle的区别

FromHandle得到的指针是临时变量,

,通过Attach连接的句柄可以长久保留,但通过FromHandle得到的只是暂时的,

大概只在一个消息区间内有效,很快便会被删除,所以基本上不能用。

我用了FromHandle然后一直出错!!!

 

from:http://blog.csdn.net/newstarao/archive/2009/05/22/4209656.aspx

转载于:https://www.cnblogs.com/dahai/archive/2010/06/22/1762422.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值