diff --git a/samples/text/text.cpp b/samples/text/text.cpp index 3e1efc157f..575ac2b6f9 100644 --- a/samples/text/text.cpp +++ b/samples/text/text.cpp @@ -1031,7 +1031,7 @@ MyPanel::MyPanel( wxFrame *frame, int x, int y, int w, int h ) #if wxUSE_LOG m_log = new wxTextCtrl( this, wxID_ANY, wxT("This is the log window.\n"), wxPoint(5,260), wxSize(630,100), - wxTE_MULTILINE | wxTE_READONLY | wxTE_RICH); + wxTE_MULTILINE | wxTE_READONLY); m_logOld = wxLog::SetActiveTarget( new wxLogTextCtrl( m_log ) ); #endif // wxUSE_LOG diff --git a/src/msw/textctrl.cpp b/src/msw/textctrl.cpp index 4c910b173e..8ffbfce0c1 100644 --- a/src/msw/textctrl.cpp +++ b/src/msw/textctrl.cpp @@ -544,7 +544,20 @@ bool wxTextCtrl::MSWCreateText(const wxString& value, ::SendMessage(GetHwnd(), EM_SETEVENTMASK, 0, mask); } + else #endif // wxUSE_RICHEDIT + if ( HasFlag(wxTE_MULTILINE) && HasFlag(wxTE_READONLY) ) + { + // non-rich read-only multiline controls have grey background by + // default under MSW but this is not always appropriate, so forcefully + // reset the background colour to normal default + // + // this is not ideal but, after a long discussion on wx-dev (see + // http://thread.gmane.org/gmane.comp.lib.wxwidgets.devel/116360/) it + // was finally deemed to be the best behaviour by default (and ideally + // we'd have a way to change this, see #11521) + SetBackgroundColour(GetClassDefaultAttributes().colBg); + } #ifndef __WXWINCE__ // Without this, if we pass the size in the constructor and then don't change it,