使用BitBlt复制位图,出现显示黑色块的问题

来源:互联网 发布:wampserver配置sql 编辑:程序博客网 时间:2024/05/17 06:41

我遇到这个问题两三次了,前面都是放着或者一不小心就好了大笑。今天我又遇到了,这此让我找到了问题的原因,主要还是创建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就会出现黑块的问题,所以我们创建兼容位图的时候要注意位图是与那个句柄兼容的

原创粉丝点击