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;
// 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
private:
DECLARE_DYNAMIC_CLASS_NO_COPY(wxControl)
- DECLARE_EVENT_TABLE()
};
#endif // _WX_CONTROL_H_