这样做bitmap异或有什么不对
我写了个函数(不能用MFC的),做bitmap异或,结果放到*Result中:
VOID BitmapXOR(HBITMAP hbmpCurrent, HBITMAP hbmpLast, BYTE * result)
{
HDC hDC, dcCurrent, dcLast;
HBITMAP hBitmap, hOldBitMap;
int p;
dcCurrent = CreateCompatibleDC(NULL);
hOldBitMap = SelectObject(dcCurrent, hbmpCurrent);
dcLast = CreateCompatibleDC(NULL);
SelectObject(dcLast, hbmpLast);
BitBlt(dcCurrent,0,0,BOARD_WIDTH,BOARD_HEIGHT,dcLast,0,0,SRCINVERT);
hBitmap = CreateCompatibleBitmap(dcCurrent, BOARD_WIDTH, BOARD_HEIGHT);
// Get the bits from the hdcMem
GetBitsFromHBitmap(hBitmap, result);
// clearn up
DeleteObject(hBitmap);
DeleteDC(dcLast);
DeleteDC(dcCurrent);
}
但是我发现不管什么两个不同图片,result结果都是全0,不知道哪里错了. 我不是太理解SelectObject,是不是这个地方有问题啊?
谢谢!