Allowed MSW wxTrextCtrl styling to also set the background colour,

added wxUSE_RICHEDIT2 so this can be disabled for compilers that don't
have the right structures.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@10407 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robin Dunn 2001-06-01 19:26:57 +00:00
parent 4ceb1196bb
commit be329a3de3
2 changed files with 23 additions and 5 deletions

View File

@ -682,9 +682,15 @@
// Recommended setting: 1, only set it to 0 if your compiler doesn't have
// or can't compile <richedit.h>
#if defined(__WIN95__) && !defined(__TWIN32__) && !defined(__GNUWIN32_OLD__)
#define wxUSE_RICHEDIT 1
#define wxUSE_RICHEDIT 1
// TODO: This should be ifdef'ed for any compilers that don't support
// RichEdit 2.0 but do have RichEdit 1.0...
#define wxUSE_RICHEDIT2 1
#else
#define wxUSE_RICHEDIT 0
#define wxUSE_RICHEDIT 0
#define wxUSE_RICHEDIT2 0
#endif
// Set this to 1 to enable support for the owner-drawn menu and listboxes. This

View File

@ -1233,10 +1233,11 @@ bool wxTextCtrl::SetStyle(long start, long end, const wxTextAttr& style)
// the rich text control doesn't handle setting background colour, so don't
// even try if it's the only thing we want to change
if ( !style.HasFont() && !style.HasTextColour() )
if ( wxRichEditModule::GetLoadedVersion() < 2 &&
!style.HasFont() && !style.HasTextColour() )
{
// nothing to do: return TRUE if there was really nothing to doand
// FALSE fi we failed to set bg colour
// nothing to do: return TRUE if there was really nothing to do and
// FALSE if we failed to set bg colour
return !style.HasBackgroundColour();
}
@ -1260,7 +1261,11 @@ bool wxTextCtrl::SetStyle(long start, long end, const wxTextAttr& style)
SendMessage(GetHwnd(), EM_SETSEL, (WPARAM) start, (LPARAM) end);
// initialize CHARFORMAT struct
#if wxUSE_RICHEDIT2
CHARFORMAT2 cf;
#else
CHARFORMAT cf;
#endif
wxZeroMemory(cf);
cf.cbSize = sizeof(cf);
@ -1307,6 +1312,13 @@ bool wxTextCtrl::SetStyle(long start, long end, const wxTextAttr& style)
cf.crTextColor = wxColourToRGB(style.GetTextColour());
}
#if wxUSE_RICHEDIT2
if ( wxRichEditModule::GetLoadedVersion() > 1 && style.HasBackgroundColour() )
{
cf.dwMask |= CFM_BACKCOLOR;
cf.crBackColor = wxColourToRGB(style.GetBackgroundColour());
}
#endif
// do format the selection
bool ok = ::SendMessage(GetHwnd(), EM_SETCHARFORMAT,
SCF_SELECTION, (LPARAM)&cf) != 0;