]> git.saurik.com Git - wxWidgets.git/commitdiff
added MSWGetDefaultBgBrush() to allow some derived classes to use transparent brush...
authorVadim Zeitlin <vadim@wxwidgets.org>
Sun, 12 Dec 2004 19:44:52 +0000 (19:44 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Sun, 12 Dec 2004 19:44:52 +0000 (19:44 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@30969 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/msw/control.h
src/msw/control.cpp

index 574d84a74b1dfa94307ad9f58faa6319ee24d88e..960c3a994871eea29bfa5aeb19cf5f50d8658742 100644 (file)
@@ -133,6 +133,15 @@ protected:
     // common part of the 3 methods above
     WXHBRUSH MSWControlColorSolid(WXHDC pDC, wxColour colBg);
 
     // common part of the 3 methods above
     WXHBRUSH MSWControlColorSolid(WXHDC pDC, wxColour colBg);
 
+    // another WM_CTLCOLOR-related function: override this to return the brush
+    // which should be used to paint the control background by default
+    //
+    // for most controls, the default behaviour of returning 0 and letting the
+    // system do it is correct, but for some -- e.g. checkboxes -- we actually
+    // have to return transparent brush from here to prevent the system from
+    // overwriting background with solid colour
+    virtual WXHBRUSH MSWGetDefaultBgBrush() { return 0; }
+
     // this is a helper for the derived class GetClassDefaultAttributes()
     // implementation: it returns the right colours for the classes which
     // contain something else (e.g. wxListBox, wxTextCtrl, ...) instead of
     // this is a helper for the derived class GetClassDefaultAttributes()
     // implementation: it returns the right colours for the classes which
     // contain something else (e.g. wxListBox, wxTextCtrl, ...) instead of
index fa80b56493f8db69bced81aa6ddbcc7ba63bb68a..7dc54a51146a5c8129c57b655f3abeeda2cfbe91 100644 (file)
@@ -382,7 +382,7 @@ WXHBRUSH wxControl::MSWControlColor(WXHDC pDC)
 #endif // wxUSE_UXTHEME
 
     // let the control deal with background itself
 #endif // wxUSE_UXTHEME
 
     // let the control deal with background itself
-    return 0;
+    return MSWGetDefaultBgBrush();
 }
 
 WXHBRUSH wxControl::MSWControlColorDisabled(WXHDC pDC)
 }
 
 WXHBRUSH wxControl::MSWControlColorDisabled(WXHDC pDC)