]> git.saurik.com Git - wxWidgets.git/commitdiff
fixed wxBitmapButton bug with bitmaps with masks
authorVadim Zeitlin <vadim@wxwidgets.org>
Wed, 15 Dec 1999 00:28:42 +0000 (00:28 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Wed, 15 Dec 1999 00:28:42 +0000 (00:28 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@4951 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/msw/bmpbuttn.cpp

index 22234319d36dddb081069bc52af99a22a38148bd..c7d8dd076fbceb5fc0f8b8ad6b90a28a13424504 100644 (file)
@@ -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
     {