使用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,黑块)