GetDIBits到底怎么用的呀?
牧童027 2003-05-24 04:12:53 我用SDK编写一例程。
HBITMAP hBmp = (HBITMAP)LoadImage(NULL, pszFileName, IMAGE_BITMAP, 0, 0, LR_DEFAULTSIZE|LR_LOADFROMFILE);
HDC memdc = CreateCompatibleDC(hDC);//hDC 是用GetDC得出来的。
BITMAP bitmap;
GetObject(hBmp, sizeof(bitmap), &bitmap);
SelectObject(memdc, hBmp);
BitBlt(hDC, 0, 0, bitmap.bmWidth, bitmap.bmHeight, memdc, 0, 0, SRCCOPY);//这里图片已正常显示
ReleaseDC(hWnd, memdc);
BYTE *pv = new BYTE[bitmap.bmHeight * bitmap.bmWidthBytes];
ZeroMemory(pv, bitmap.bmHeight*bitmap.bmWidthBytes);
GetDIBits(hDC, hBmp, 0, bitmap.bmWidth, pv, &bitmapinfo, DIB_RGB_COLORS);
这里GetDIBits总是返回NULL,我接着用GetLastError()返回也是0,在PV里什么都没有。