PicDC.CreateCompatibleDC(pDC);
hBitmap = CreateBitmap( pPicInfo->BmpInfoHeader.biWidth, pPicInfo->BmpInfoHeader.biHeight, pPicInfo->BmpInfoHeader.biPlanes,pPicInfo->BmpInfoHeader.biBitCount,pPicInfo->PicData);
if(NULL == hBitmap)
MessageBox(L"Create hBitmap object Fail!",NULL,MB_OK);
PicDC.SelectObject(hBitmap);
pDC->BitBlt(10,10,pPicInfo->BmpInfoHeader.biWidth,pPicInfo->BmpInfoHeader.biHeight,&PicDC,0,0,SRCCOPY);
DeleteObject(hBitmap);
PicDC.DeleteDC();
使用这段代码来显示位图,目前是16bpp RGB565的位图可以显示,但是24bpp 888的就没法显示。
请教一下如何才能显示24位位图?谢谢!

解决方案 »

  1.   

    你看看hBitmap = CreateBitmap( pPicInfo->BmpInfoHeader.biWidth, pPicInfo->BmpInfoHeader.biHeight, pPicInfo->BmpInfoHeader.biPlanes,pPicInfo->BmpInfoHeader.biBitCount,pPicInfo->PicData);调试看看,用RGB565和24位的调用看看时,两者的biBitCount的区别,一个应该是16,一个应该是24
      

  2.   

    哪位有CimageObject类库呀?发给我一份:[email protected]
    谢谢!
      

  3.   

    这个调试过了,24位位图是这个biBitCount是24。
      

  4.   

    colour format for picDC and bitmap are not compatible