X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/222594ead7a8ed85cb0c709850b2eed07fc3ac86..f4cc15cd73753bccecfc845328be3caf955b0864:/src/msw/control.cpp diff --git a/src/msw/control.cpp b/src/msw/control.cpp index 17c62f087c..75130e2547 100644 --- a/src/msw/control.cpp +++ b/src/msw/control.cpp @@ -119,7 +119,7 @@ bool wxControl::MSWCreateControl(const wxChar *classname, return TRUE; } -wxSize wxControl::DoGetBestSize() +wxSize wxControl::DoGetBestSize() const { return wxSize(DEFAULT_ITEM_WIDTH, DEFAULT_ITEM_HEIGHT); } @@ -208,6 +208,34 @@ void wxControl::OnEraseBackground(wxEraseEvent& event) ::SetMapMode(hdc, mode); } +WXHBRUSH wxControl::OnCtlColor(WXHDC pDC, WXHWND pWnd, WXUINT nCtlColor, + WXUINT message, + WXWPARAM wParam, + WXLPARAM lParam) +{ +#if wxUSE_CTL3D + if ( m_useCtl3D ) + { + HBRUSH hbrush = Ctl3dCtlColorEx(message, wParam, lParam); + return (WXHBRUSH) hbrush; + } +#endif // wxUSE_CTL3D + + HDC hdc = (HDC)pDC; + if (GetParent()->GetTransparentBackground()) + SetBkMode(hdc, TRANSPARENT); + else + SetBkMode(hdc, OPAQUE); + + const wxColour& colBack = GetBackgroundColour(); + ::SetBkColor(hdc, wxColourToRGB(colBack)); + ::SetTextColor(hdc, wxColourToRGB(GetForegroundColour())); + + wxBrush *brush = wxTheBrushList->FindOrCreateBrush(colBack, wxSOLID); + + return (WXHBRUSH)brush->GetResourceHandle(); +} + WXDWORD wxControl::GetExStyle(WXDWORD& style, bool *want3D) const { WXDWORD exStyle = Determine3DEffects(WS_EX_CLIENTEDGE, want3D);