hbitmap Cbitmap的转换

    技术2022-05-20  64

     

    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


    最新回复(0)