将unsigned char数组转换为MFC中的位图

时间:2013-11-18 09:38:06

标签: visual-studio-2010 mfc

我尝试将未签名的char数组转换为MFC中的Bitmap,如下所示。

        BITMAPFILEHEADER* bmfh;
        bmfh = (BITMAPFILEHEADER*)rgbByte;

        BITMAPINFOHEADER* bmih;
        bmih = (BITMAPINFOHEADER*)(rgbByte + sizeof(BITMAPFILEHEADER));
        BITMAPINFO* bmi;
        bmi = (BITMAPINFO*)bmih;

        void* bits;
        bits = (void*)(rgbByte + bmfh->bfOffBits);

        HDC hdc = ::GetDC(NULL);

        HBITMAP hbmp = CreateDIBitmap(hdc, bmih, CBM_INIT, bits, bmi, DIB_RGB_COLORS) ;

rgbByte是我的unsigned char数组,问题是hbmp总是未使用且永远不会获取数据。问题是什么? 感谢

1 个答案:

答案 0 :(得分:0)

HDC hdc = ::GetDC(NULL);

获取整个屏幕的DC。我怀疑那是你想要的。您更有可能在窗口或图像控件中放置位图。您需要通过传递给GetDC()它的m_hWnd成员来获取该窗口的DC。