]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/msw/control.h
use MSWAlwaysDrawBg() to fix the problem with black background; rewrote/cleaned up...
[wxWidgets.git] / include / wx / msw / control.h
index 6f36753b4dab128b141eb5e7341a8cd943e7c78e..c3bd297ea4c134d617aa71d32488c581629a05ef 100644 (file)
@@ -70,11 +70,6 @@ public:
 
     const wxArrayLong& GetSubcontrols() const { return m_subControls; }
 
-    void OnEraseBackground(wxEraseEvent& event);
-
-    virtual WXHBRUSH OnCtlColor(WXHDC pDC, WXHWND pWnd, WXUINT nCtlColor,
-            WXUINT message, WXWPARAM wParam, WXLPARAM lParam);
-
 protected:
     // choose the default border for this window
     virtual wxBorder GetDefaultBorder() const;
@@ -121,6 +116,31 @@ protected:
     // default style for the control include WS_TABSTOP if it AcceptsFocus()
     virtual WXDWORD MSWGetStyle(long style, WXDWORD *exstyle) const;
 
+    // default handling of WM_CTLCOLORxxx
+    virtual WXHBRUSH MSWControlColor(WXHDC pDC);
+
+    // call this from the derived class MSWControlColor() if you want to show
+    // the control greyed out
+    WXHBRUSH MSWControlColorDisabled(WXHDC pDC);
+
+    // call this from the derived class MSWControlColor() if you want to always
+    // paint the background (as all opaque controls do)
+    WXHBRUSH MSWControlColorSolid(WXHDC pDC)
+    {
+        return MSWControlColorSolid(pDC, GetBackgroundColour());
+    }
+
+    // common part of the 3 methods above
+    WXHBRUSH MSWControlColorSolid(WXHDC pDC, wxColour colBg);
+
+    // another WM_CTLCOLOR-related function: if it returns false, we return
+    // NULL_BRUSH from MSWControlColor() to prevent the system from erasing the
+    // background at all
+    //
+    // override this function to return true for controls which do want to
+    // draw their background themselves
+    virtual bool MSWAlwaysDrawBg() const { return false; }
+
     // 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
@@ -134,7 +154,6 @@ protected:
 
 private:
     DECLARE_DYNAMIC_CLASS_NO_COPY(wxControl)
-    DECLARE_EVENT_TABLE()
 };
 
 #endif // _WX_CONTROL_H_