Instead of hard-coding GetSysColor(COLOR_WINDOWTEXT), use
GetForegroundColour() which will call GetDefaultAttributes() to retrieve the
default foreground appropriate for this control.
This also allows to make the code simpler by calling SetTextColor() only once.
See #1691.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61860
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
WXHBRUSH wxControl::DoMSWControlColor(WXHDC pDC, wxColour colBg, WXHWND hWnd)
{
HDC hdc = (HDC)pDC;
WXHBRUSH wxControl::DoMSWControlColor(WXHDC pDC, wxColour colBg, WXHWND hWnd)
{
HDC hdc = (HDC)pDC;
- if ( m_hasFgCol )
- {
- ::SetTextColor(hdc, wxColourToRGB(GetForegroundColour()));
- }
WXHBRUSH hbr = 0;
if ( !colBg.Ok() )
WXHBRUSH hbr = 0;
if ( !colBg.Ok() )
hbr = (WXHBRUSH)brush->GetResourceHandle();
}
hbr = (WXHBRUSH)brush->GetResourceHandle();
}
- // if we use custom background, we should set foreground ourselves too
- if ( hbr && !m_hasFgCol )
+ // always set the foreground colour if we changed the background, whether
+ // m_hasFgCol is true or not: if it true, we must do it, of course, but
+ // even if it isn't, we must set the default foreground explicitly as by
+ // default just the simple black is used
+ if ( hbr )
- ::SetTextColor(hdc, ::GetSysColor(COLOR_WINDOWTEXT));
+ ::SetTextColor(hdc, wxColourToRGB(GetForegroundColour()));
- //else: already set above