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