分享

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

 启蒙彩魂 2011-04-09
 

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然后一直出错!!!

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多