createDIBSection()创建DIB时不成功,大家帮我看看这个程序段出了什么问题
CRect rc;
GetClientRect(rc);
rc.right = 240;
CDC *pDlgDC;
pDlgDC = GetDC();
ASSERT(m_saveDC.CreateCompatibleDC(pDlgDC));
m_pbmpInfo = (BITMAPINFO *)new BYTE[sizeof(BITMAPINFOHEADER)+ (1<<16) * sizeof(RGBQUAD)];
ASSERT(m_pbmpInfo);
memset(m_pbmpInfo, 0, sizeof(BITMAPINFOHEADER) + (1<<16) * sizeof(RGBQUAD));
m_pbmpInfo->bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
m_pbmpInfo->bmiHeader.biWidth = rc.right;
m_pbmpInfo->bmiHeader.biHeight = rc.bottom;
m_pbmpInfo->bmiHeader.biPlanes = 1;
m_pbmpInfo->bmiHeader.biBitCount = 16;//bmp.bmBitsPixel;
m_pbmpInfo->bmiHeader.biCompression = BI_RGB; // used for 16- or 32-bpp;???
m_pbmpInfo->bmiHeader.biSizeImage = 0;
m_pbmpInfo->bmiHeader.biClrUsed = 0;
m_pbmpInfo->bmiHeader.biClrImportant = 0;
m_hBitmap = CreateDIBSection(m_saveDC.m_hDC, m_pbmpInfo, DIB_RGB_COLORS, (void **)&m_pBits, NULL, 0);