首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

知道所有像素的值,构造CBitmap并显示的有关问题

2012-01-06 
【急】知道所有像素的值,构造CBitmap并显示的问题CDC dcMem//缓冲区CBitmap bmp//位图CPalette *palette

【急】知道所有像素的值,构造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

热点排行