首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > windows >

使用SetDIBits往窗口屏幕上画图,该怎么处理

2012-02-10 
使用SetDIBits往窗口屏幕上画图代码如下:HDC dc,memdcHBITMAP memBmpdc GetDC(mainWindowHandle)memd

使用SetDIBits往窗口屏幕上画图
代码如下:


HDC dc,memdc;
HBITMAP memBmp;

  dc = GetDC(mainWindowHandle);

memdc=CreateCompatibleDC(dc);
memBmp=CreateCompatibleBitmap(dc,GetSystemMetrics(SM_CXSCREEN),GetSystemMetrics(SM_CYSCREEN));

SelectObject(memdc,memBmp);

DWORD size=512*512; //每行像素位*图高
BYTE* pBuf=new BYTE[size];

BITMAPINFO binfo;
ZeroMemory(&binfo,sizeof(BITMAPINFO)); 
binfo.bmiHeader.biBitCount=24; //每个像素多少位,也可直接写24(RGB)或者32(RGBA)
binfo.bmiHeader.biCompression=0; 
binfo.bmiHeader.biHeight=512; 
binfo.bmiHeader.biPlanes=1; 
binfo.bmiHeader.biSizeImage=0; 
binfo.bmiHeader.biSize=sizeof(BITMAPINFOHEADER); 
binfo.bmiHeader.biWidth=512;

GetDIBits(memdc,memBmp,0,binfo.bmiHeader.biHeight,pBuf,(BITMAPINFO*)&binfo,DIB_RGB_COLORS);
//逐点处理,这里是用来作淡出效果
//这里是一个颜色分量8位,而不是一个像素
for(int i=0;i<50000;i++)
{
pBuf[i]=150;
  
}
//全图处理完毕读出到屏幕dc显示
SetDIBits(dc,memBmp,0,binfo.bmiHeader.biHeight,pBuf,(BITMAPINFO*)&binfo,DIB_RGB_COLORS);



结果什么都没画出来。。求高手赐教啊

[解决办法]
应该到编程区提问

热点排行
Bad Request.