fixed background drawing for opaque controls

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@31119 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2004-12-22 21:07:33 +00:00
parent 026d8152a6
commit dd12ce22d8
2 changed files with 16 additions and 8 deletions

View File

@@ -125,7 +125,15 @@ protected:
// call this from the derived class MSWControlColor() if you want to always // call this from the derived class MSWControlColor() if you want to always
// paint the background (as all opaque controls do) // paint the background (as all opaque controls do)
WXHBRUSH MSWControlColorSolid(WXHDC pDC, wxColour colBg = wxNullColour); WXHBRUSH MSWControlColorSolid(WXHDC pDC)
{
return DoMSWControlColor(pDC, GetBackgroundColour());
}
// common part of the 3 functions above: pass wxNullColour to use the
// appropriate background colour (meaning ours or our parents) or a fixed
// one
WXHBRUSH DoMSWControlColor(WXHDC pDC, wxColour colBg);
// another WM_CTLCOLOR-related function: override this to return the brush // another WM_CTLCOLOR-related function: override this to return the brush
// which should be used to paint the control background by default // which should be used to paint the control background by default

View File

@@ -331,7 +331,7 @@ bool wxControl::MSWOnNotify(int idCtrl,
} }
#endif // Win95 #endif // Win95
WXHBRUSH wxControl::MSWControlColorSolid(WXHDC pDC, wxColour colBg) WXHBRUSH wxControl::DoMSWControlColor(WXHDC pDC, wxColour colBg)
{ {
HDC hdc = (HDC)pDC; HDC hdc = (HDC)pDC;
if ( m_hasFgCol ) if ( m_hasFgCol )
@@ -358,18 +358,18 @@ WXHBRUSH wxControl::MSWControlColorSolid(WXHDC pDC, wxColour colBg)
WXHBRUSH wxControl::MSWControlColor(WXHDC pDC) WXHBRUSH wxControl::MSWControlColor(WXHDC pDC)
{ {
// by default consider that the controls text shouldn't erase the
// background under it (this is true for all static controls, check boxes,
// radio buttons, ...
::SetBkMode((HDC)pDC, TRANSPARENT); ::SetBkMode((HDC)pDC, TRANSPARENT);
return MSWControlColorSolid(pDC); return DoMSWControlColor(pDC, wxNullColour);
} }
WXHBRUSH wxControl::MSWControlColorDisabled(WXHDC pDC) WXHBRUSH wxControl::MSWControlColorDisabled(WXHDC pDC)
{ {
return MSWControlColorSolid return DoMSWControlColor(pDC,
( wxSystemSettings::GetColour(wxSYS_COLOUR_BTNFACE));
pDC,
wxSystemSettings::GetColour(wxSYS_COLOUR_BTNFACE)
);
} }
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------