From 2e8005ccaf7663d3b3abc643547ce18d74fd5290 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Wed, 15 Dec 1999 00:28:42 +0000 Subject: [PATCH] fixed wxBitmapButton bug with bitmaps with masks git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@4951 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/msw/bmpbuttn.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/msw/bmpbuttn.cpp b/src/msw/bmpbuttn.cpp index 22234319d3..c7d8dd076f 100644 --- a/src/msw/bmpbuttn.cpp +++ b/src/msw/bmpbuttn.cpp @@ -178,13 +178,22 @@ bool wxBitmapButton::MSWOnDraw(WXDRAWITEMSTRUCT *item) // the fg ROP is applied for the pixels of the mask bitmap which are 1 // (for a wxMask this means that this is a non transparent pixel), the // bg ROP is applied for all the others + + wxColour colBg = GetBackgroundColour(); + HBRUSH hbrBackground = + ::CreateSolidBrush(RGB(colBg.Red(), colBg.Green(), colBg.Blue())); + HBRUSH hbrOld = (HBRUSH)::SelectObject(hDC, hbrBackground); + ok = ::MaskBlt( hDC, x1, y1, wBmp, hBmp, // dst memDC, 0, 0, // src (HBITMAP)mask->GetMaskBitmap(), 0, 0, // mask MAKEROP4(SRCCOPY, // fg ROP - SRCPAINT) // bg ROP + PATCOPY) // bg ROP ); + + ::SelectObject(hDC, hbrOld); + ::DeleteObject(hbrBackground); } else { -- 2.50.0