【急】知道所有像素的值,构造CBitmap并显示的问题
CDC dcMem;//缓冲区
CBitmap bmp;//位图
CPalette *palette = NULL;
//Height,Width是我想生成的图像的高度和宽度
pbitmap.bmHeight =Height;
pbitmap.bmWidth = Width;
pbitmap.bmBitsPixel = 32;
pbitmap.bmPlanes = 1;
pbitmap.bmType = 0;
pbitmap.bmWidthBytes = (Width*3/4+1)*4;
BITMAP pbitmap;
BYTE* pBits = new BYTE[pbitmap.bmWidthBytes*pbitmap.bmHeight];
for(int i = 0 ;i < Height;i++)
{
for (int l = 0 ; l < Width;l++)
{
pBits[l*3+i*pbitmap.bmWidthBytes] = 155;
pBits[l*3+i*pbitmap.bmWidthBytes+1] = 125;
pBits[l*3+i*pbitmap.bmWidthBytes+2] = 120;
}
for (int kk = 0; kk < zeronum;kk++ )
{
pBits[Width*3+i*pbitmap.bmWidthBytes+kk] = zero;//zero为空白的值,默认255
}
delete pGridColor;
}
dcMem.CreateCompatibleDC(pDC);
dcMem.FillSolidRect(rect,pDC->GetBkColor());
bmp.CreateBitmapIndirect(&pbitmap);
int aa = bmp.SetBitmapBits(pbitmap.bmWidthBytes*pbitmap.bmHeight,pBits);
dcMem.SelectObject(&bmp);
pDC->StretchBlt(0,0,ClientRect.Width(),ClientRect.Height(),&dcMem,0,0,
pbitmap.bmWidth,pbitmap.bmHeight,SRCCOPY);
//pDC->BitBlt(0,0,ClientRect.Width(),ClientRect.Height(),&dcMem,0,0,SRCCOPY);
[解决办法]
CreateCompatibleBitmap