我花出的图片为什么只有黑白两种颜色???
下边这段代码是读一个20X20的位图到内存dc然后把它在bitblt窗口上,为什么我画出来的图像是黑白的?
void CGoushengDlg::OnButton1()
{
// TODO: Add your control notification handler code here
HWND h=GetSafeHwnd();
HDC hdc = ::GetDC(h);
FILE* fp;
BITMAPFILEHEADER BMFHTemp;
LPBITMAPINFO pBMITemp;
LPVOID pBits;
fp = fopen("c:\\dummy.bmp","rb");
//读文件头
fread((void*)&BMFHTemp,sizeof(BITMAPFILEHEADER),1,fp);
//读信息头
int bminfolen = BMFHTemp.bfOffBits -sizeof(BITMAPFILEHEADER);
pBMITemp = (LPBITMAPINFO)malloc(bminfolen);
fread((void*)pBMITemp,bminfolen,1,fp);
//读数据
int bitlen = BMFHTemp.bfSize - BMFHTemp.bfOffBits;
pBits = malloc(bitlen);
fread(pBits,bitlen,1,fp);
//创建内存dc和bmp
HDC hmemdc= CreateCompatibleDC(hdc );
HBITMAP hmembmp=CreateCompatibleBitmap(hmemdc, 20, 20);
SetDIBits( hmemdc, hmembmp,0, 20, pBits, pBMITemp, pBMITemp->bmiHeader.biClrUsed );
HBITMAP holdbmp = (HBITMAP)::SelectObject(hmemdc,hmembmp);
//
::BitBlt(hdc,100,100,20,20,hmemdc,0,0,SRCCOPY);
::SelectObject(hmemdc,holdbmp);
DeleteDC(hmemdc);
DeleteObject(hmembmp);
::ReleaseDC(h,hdc);
free((void*)pBMITemp);
free(pBits);
fclose(fp);
}