X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/2e8005ccaf7663d3b3abc643547ce18d74fd5290..98440bc3543c1c5f02875c6427c89802c07787c4:/src/msw/bmpbuttn.cpp diff --git a/src/msw/bmpbuttn.cpp b/src/msw/bmpbuttn.cpp index c7d8dd076f..4eb6795442 100644 --- a/src/msw/bmpbuttn.cpp +++ b/src/msw/bmpbuttn.cpp @@ -39,7 +39,10 @@ bool wxBitmapButton::Create(wxWindow *parent, wxWindowID id, const wxBitmap& bit { m_buttonBitmap = bitmap; SetName(name); + +#if wxUSE_VALIDATORS SetValidator(validator); +#endif // wxUSE_VALIDATORS parent->AddChild(this); @@ -172,6 +175,9 @@ bool wxBitmapButton::MSWOnDraw(WXDRAWITEMSTRUCT *item) } BOOL ok; + + // no MaskBlt() under Win16 +#ifdef __WIN32__ wxMask *mask = bitmap->GetMask(); if ( mask ) { @@ -179,9 +185,8 @@ bool wxBitmapButton::MSWOnDraw(WXDRAWITEMSTRUCT *item) // (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())); + ::CreateSolidBrush(wxColourToRGB(GetBackgroundColour())); HBRUSH hbrOld = (HBRUSH)::SelectObject(hDC, hbrBackground); ok = ::MaskBlt( @@ -196,6 +201,14 @@ bool wxBitmapButton::MSWOnDraw(WXDRAWITEMSTRUCT *item) ::DeleteObject(hbrBackground); } else + { + // this will make the check below fail and BitBlt() will be used if + // MaskBlt() is not supported (for example, under Win95) + ok = FALSE; + } + + if ( !ok ) +#endif // Win32 { ok = ::BitBlt(hDC, x1, y1, wBmp, hBmp, // dst memDC, 0, 0, // src