X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/f048e32fcd5260f33fbebdafbe1a0deeda175419..737255678cb96a8296348fb62603afdd28133ec5:/src/msw/control.cpp?ds=sidebyside diff --git a/src/msw/control.cpp b/src/msw/control.cpp index 75130e2547..89ddd5c546 100644 --- a/src/msw/control.cpp +++ b/src/msw/control.cpp @@ -34,13 +34,11 @@ #include #endif -#if !USE_SHARED_LIBRARY IMPLEMENT_ABSTRACT_CLASS(wxControl, wxWindow) BEGIN_EVENT_TABLE(wxControl, wxWindow) EVT_ERASE_BACKGROUND(wxControl::OnEraseBackground) END_EVENT_TABLE() -#endif // Item members wxControl::wxControl() @@ -58,6 +56,22 @@ wxControl::~wxControl() m_isBeingDeleted = TRUE; } + +bool wxControl::Create(wxWindow *parent, wxWindowID id, + const wxPoint& pos, + const wxSize& size, long style, + const wxValidator& validator, + const wxString& name) +{ + bool rval = wxWindow::Create(parent, id, pos, size, style, name); + if (rval) { +#if wxUSE_VALIDATORS + SetValidator(validator); +#endif + } + return rval; +} + bool wxControl::MSWCreateControl(const wxChar *classname, WXDWORD style, const wxPoint& pos, @@ -190,10 +204,9 @@ bool wxControl::MSWOnNotify(int idCtrl, void wxControl::OnEraseBackground(wxEraseEvent& event) { - // In general, you don't want to erase the background of a control, - // or you'll get a flicker. - // TODO: move this 'null' function into each control that - // might flicker. + // notice that this 'dumb' implementation may cause flicker for some of the + // controls in which case they should intercept wxEraseEvent and process it + // themselves somehow RECT rect; ::GetClientRect(GetHwnd(), &rect);