X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/0edeeb6d96d31d342a6a283d2a9b625a1d0a7b96..f8b1df0b15f843b8f47efb9bee38f1de0fa95020:/src/msw/tbar95.cpp diff --git a/src/msw/tbar95.cpp b/src/msw/tbar95.cpp index f04e66f35c..21ab3d581f 100644 --- a/src/msw/tbar95.cpp +++ b/src/msw/tbar95.cpp @@ -44,6 +44,7 @@ #endif #include "wx/sysopt.h" +#include "wx/dcclient.h" #include "wx/msw/private.h" @@ -308,13 +309,6 @@ bool wxToolBar::MSWCreateToolbar(const wxPoint& pos, const wxSize& size) ::SendMessage(GetHwnd(), TB_SETEXTENDEDSTYLE, 0, TBSTYLE_EX_DRAWDDARROWS); #endif - // Fix a bug on e.g. the Silver theme on WinXP where control backgrounds - // are incorrectly drawn, by forcing the background to a specific colour. - int majorVersion, minorVersion; - wxGetOsVersion(& majorVersion, & minorVersion); - if (majorVersion < 6) - SetBackgroundColour(GetBackgroundColour()); - return true; } @@ -961,7 +955,7 @@ bool wxToolBar::Realize() if ( tool->Toggle(false) ) DoToggleTool(tool, false); - prevButton.fsState &= TBSTATE_CHECKED; + prevButton.fsState &= ~TBSTATE_CHECKED; nodePrev = nodePrev->GetPrevious(); prevIndex--; } @@ -1235,7 +1229,7 @@ bool wxToolBar::MSWOnNotify(int WXUNUSED(idCtrl), LPNMTOOLBAR tbhdr = (LPNMTOOLBAR)lParam; wxCommandEvent evt(wxEVT_COMMAND_TOOL_DROPDOWN_CLICKED, tbhdr->iItem); - if ( GetEventHandler()->ProcessEvent(evt) ) + if ( HandleWindowEvent(evt) ) { // Event got handled, don't display default popup menu return false; @@ -1543,7 +1537,11 @@ void wxToolBar::OnMouseEvent(wxMouseEvent& event) void wxToolBar::OnEraseBackground(wxEraseEvent& event) { RECT rect = wxGetClientRect(GetHwnd()); - HDC hdc = GetHdcOf((*event.GetDC())); + + wxDC *dc = event.GetDC(); + if (!dc) return; + wxMSWDCImpl *impl = (wxMSWDCImpl*) dc->GetImpl(); + HDC hdc = GetHdcOf(*impl); int majorVersion, minorVersion; wxGetOsVersion(& majorVersion, & minorVersion); @@ -1775,8 +1773,9 @@ bool wxToolBar::HandlePaint(WXWPARAM wParam, WXLPARAM lParam) r.right = clientSize.x; r.top = 0; r.bottom = clientSize.y; - - HRESULT hr = theme->DrawThemeBackground(hTheme, (HDC) dc.GetHDC(), 0, 0, & r, & clipRect); + + wxMSWDCImpl *impl = (wxMSWDCImpl*) dc.GetImpl(); + HRESULT hr = theme->DrawThemeBackground(hTheme, GetHdcOf(*impl), 0, 0, & r, & clipRect); if ( hr == S_OK ) haveRefreshed = true; }