extended wxWindow::MSWGetBgBrush() and wxControl::MSWControlColor() to work for arbitrary HWNDs and not just wxWindows: this allows us to draw proper background for slider labels and other subcontrols

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@33488 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2005-04-10 21:55:12 +00:00
parent 9a81018ee1
commit 2bae4332e7
10 changed files with 34 additions and 32 deletions

View File

@@ -332,7 +332,7 @@ bool wxControl::MSWOnNotify(int idCtrl,
}
#endif // Win95
WXHBRUSH wxControl::DoMSWControlColor(WXHDC pDC, wxColour colBg)
WXHBRUSH wxControl::DoMSWControlColor(WXHDC pDC, wxColour colBg, WXHWND hWnd)
{
HDC hdc = (HDC)pDC;
if ( m_hasFgCol )
@@ -343,7 +343,7 @@ WXHBRUSH wxControl::DoMSWControlColor(WXHDC pDC, wxColour colBg)
WXHBRUSH hbr = 0;
if ( !colBg.Ok() )
{
hbr = MSWGetBgBrush(pDC);
hbr = MSWGetBgBrush(pDC, hWnd);
// if the control doesn't have any bg colour, foreground colour will be
// ignored as the return value would be 0 -- so forcefully give it a
@@ -366,7 +366,7 @@ WXHBRUSH wxControl::DoMSWControlColor(WXHDC pDC, wxColour colBg)
return hbr;
}
WXHBRUSH wxControl::MSWControlColor(WXHDC pDC)
WXHBRUSH wxControl::MSWControlColor(WXHDC pDC, WXHWND hWnd)
{
wxColour colBg;
@@ -375,13 +375,14 @@ WXHBRUSH wxControl::MSWControlColor(WXHDC pDC)
else // if the control is opaque it shouldn't use the parents background
colBg = GetBackgroundColour();
return DoMSWControlColor(pDC, colBg);
return DoMSWControlColor(pDC, colBg, hWnd);
}
WXHBRUSH wxControl::MSWControlColorDisabled(WXHDC pDC)
{
return DoMSWControlColor(pDC,
wxSystemSettings::GetColour(wxSYS_COLOUR_BTNFACE));
wxSystemSettings::GetColour(wxSYS_COLOUR_BTNFACE),
GetHWND());
}
// ---------------------------------------------------------------------------