diff --git a/src/msw/dc.cpp b/src/msw/dc.cpp index c6822f1bb1..69d55f19b3 100644 --- a/src/msw/dc.cpp +++ b/src/msw/dc.cpp @@ -1430,11 +1430,16 @@ void wxMSWDCImpl::DoDrawBitmap( const wxBitmap &bmp, wxCoord x, wxCoord y, bool ::RealizePalette(hdcMem); } #endif // wxUSE_PALETTE - + // Apply mask and source bitmap to the destination bitmap + // (note that we have inverted mask). + // AND mask orig.: 0 1 + // AND mask inv.: 1 0 + // dest. bitmap: 0 XOR src dst XOR src + // =src (src=0 => dst unchanged) ok = ::MaskBlt(cdc, x, y, width, height, hdcMem, 0, 0, hbmpMask, 0, 0, - MAKEROP4(SRCCOPY, DSTCOPY)) != 0; + MAKEROP4(SRCCOPY, SRCINVERT)) != 0; #if wxUSE_PALETTE if (oldPal)