我用内存设备环境绘图,最后用SRCCOPY拷贝的屏幕上,图象的背景全是黑的;如果用SRCINVERT,那么就是原始图象的反色。
我想在CBitmap对象选进内存设备环境之后(或之前)把整个背景设置成我想要的颜色(如白色),而不是黑色,不用CDC::FloodFill(),这样速度太慢并且不是我想要的解决方法。
请问该如何做到。
谢谢!
我想在CBitmap对象选进内存设备环境之后(或之前)把整个背景设置成我想要的颜色(如白色),而不是黑色,不用CDC::FloodFill(),这样速度太慢并且不是我想要的解决方法。
请问该如何做到。
谢谢!
我试过了,不行:(
用memDC.FloodFill()倒可以,不过它会耗费很大的CPU时间。
::GetObject((HBITMAP)*m_bitmap,sizeof(BITMAP),&bmp);
DWORD dwCount = (DWORD)(bmp.bmWidthBytes*bmp.bmHeight);
HGLOBAL hMem = ::GlobalAlloc(GMEM_MOVEABLE,dwCount);
BYTE *pbyData = (BYTE*)::GlobalLock(hMem);
if(pbyData==NULL)
return;
memset(pbyData,255,dwCount);
m_bitmap.SetBitmapBits(dwCount,pbyData);
::GlobalUnlock(hMem);
::GlobalFree(hMem);
应为:
::GetObject((HBITMAP)m_bitmap,sizeof(BITMAP),&bmp);