Use white background by default for multiline readonly wxTextCtrl under MSW.

The best default behaviour seems to be to use white background for multiline
text controls even when they're read-only, as in previous wx versions.

Also see #11521 which could be implemented to make this configurable.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62804 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin 2009-12-07 05:01:21 +00:00
parent b7421ab625
commit d2356abe70
2 changed files with 14 additions and 1 deletions

View File

@ -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

View File

@ -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,