本文主要是介绍使用BitBlt复制位图,出现显示黑色块的问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
我遇到这个问题两三次了,前面都是放着或者一不小心就好了。今天我又遇到了,这此让我找到了问题的原因,主要还是创建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就会出现黑块的问题,所以我们创建兼容位图的时候要注意位图是与那个句柄兼容的
这篇关于使用BitBlt复制位图,出现显示黑色块的问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!