对于32为的Bitmap而言,CBitmap中的GetBitmapBits可以用来获取Bitmap中的像素值。其中 格式为(R,G,B,保留),一个四个字节。
自定义Bitmap显示问题:
可用SetBitmapBits填充Bitmap的像素数据。填充之前,要注意实例化Bitmap的头信息。
在显示方面:BitBlt经常出现错误,因此可以用StretchBlt方法代替。具体代码如下:
CBitmap drawBmp;
drawBmp.CreateBitmap(256,256,1,32,NULL);
BITMAP bm;
drawBmp.GetObject(sizeof(BITMAP),&bm);
drawBmp.SetBitmapBits(pDoc->dataCount,pDoc->lData);
CDC dcMemory;
dcMemory.CreateCompatibleDC(pDC);
dcMemory.SelectObject(&drawBmp);
pDC->StretchBlt(0,0,256,256,&dcMemory,0,0,bm.bmWidth,bm.bmHeight,SRCCOPY);
Invalidate(NULL);