求助:构造位图并显示出错.急!
BITMAPINFO* pBmpInfo;
int nSize = sizeof(BITMAPINFO);//sizeof(BITMAPINFOHEADER) + (256 * sizeof( RGBQUAD) );
m_pBmpInfo = (BITMAPINFO*) new UCHAR[nSize];
m_pBmpInfo->bmiHeader.biSize= (DWORD) sizeof(BITMAPINFOHEADER);
m_pBmpInfo->bmiHeader.biWidth= (LONG)pDoc->pTag.ImageWidth; //m_nScreenWidth;
m_pBmpInfo->bmiHeader.biHeight= (LONG)-pDoc->pTag.ImageHeight; //m_nScreenHeight;
m_pBmpInfo->bmiHeader.biPlanes= (WORD)1; //必须是1
m_pBmpInfo->bmiHeader.biBitCount= (DWORD)pDoc->pTag.BitsPerSample; //每个象素的位数
m_pBmpInfo->bmiHeader.biCompression = BI_RGB; //压缩类型
m_pBmpInfo->bmiHeader.biSizeImage= (DWORD)pDoc->pTag.StripByteCounts;//tif->Width * tif->Height * nBitsPerSample / 8;
m_pBmpInfo->bmiHeader.biXPelsPerMeter= (LONG) pDoc->pTag.XResolution; //水平分辨率
m_pBmpInfo->bmiHeader.biYPelsPerMeter= (LONG) pDoc->pTag.YResolution; //垂直分辨率
m_pBmpInfo->bmiHeader.biClrUsed= 0; //all colors are important
m_pBmpInfo->bmiHeader.biClrImportant = 0;
char* pVal;
pVal = pDoc->pTag.DataBuff;
CDC memdc;
memdc.CreateCompatibleDC (pDC);
HBITMAP hBitmap=CreateDIBitmap(pDC->m_hDC,&(pBmpInfo->bmiHeader),CBM_INIT,pVal,pBmpInfo,DIB_RGB_COLORS);//报错!!!
//HBITMAP CreateDIBSection(...);
memdc.SelectObject(hBitmap);
pDC->BitBlt(12,23,230,230,&memdc,0,0,SRCCOPY);
::DeleteObject(hBitmap);
memdc.DeleteDC();