我遇到这个问题两三次了,前面都是放着或者一不小心就好了。今天我又遇到了,这此让我找到了问题的原因,主要还是创建DC对应的CBitmap是出了一个很小的问题。
CDC bkDC; bkDC.CreateCompatibleDC (NULL); CDC picDC; picDC.CreateCompatibleDC(NULL); CBitmap keyBmp; bkDC.SelectObject(bkBmp); //这里的bkBmp是指向一个已经存好的图片 //在背景图中根据矩形框进行截图,存入keyBmp中 keyBmp.CreateCompatibleBitmap(&picDC,100,100); picDC.SelectObject(&keyBmp); picDC.BitBlt(0,0,100,100,&bkDC,0,0,SRCCOPY);
像上面这段代码,假如我们把创建位图的那句代码改下就会出现问题
keyBmp.CreateCompatibleBitmap(&picDC,100,100);改成keyBmp.CreateCompatibleBitmap(&pDC,100,100);
这个时候如果用BitBlt就会出现黑块的问题,所以我们创建兼容位图的时候要注意位图是与那个句柄兼容的