[EXPLORER]

* Properly support WM_SYSCOLORCHANGE

svn path=/trunk/; revision=51524
This commit is contained in:
Rafal Harabien 2011-05-01 12:58:15 +00:00
parent 0bbfb26d0f
commit 9bee914885
5 changed files with 43 additions and 4 deletions

View file

@ -464,11 +464,12 @@ LRESULT DesktopWindow::WndProc(UINT nmsg, WPARAM wparam, LPARAM lparam)
goto def;
case WM_SYSCOLORCHANGE:
// redraw background window
InvalidateRect(g_Globals._hwndShellView, NULL, TRUE);
// redraw background window - it's done by system
//InvalidateRect(g_Globals._hwndShellView, NULL, TRUE);
// forward message to shell view window to redraw icon backgrounds
SendMessage(g_Globals._hwndShellView, WM_SYSCOLORCHANGE, wparam, lparam);
// forward message to common controls
SendMessage(g_Globals._hwndShellView, WM_SYSCOLORCHANGE, 0, 0);
SendMessage(_desktopBar, WM_SYSCOLORCHANGE, 0, 0);OutputDebugStringA("WM_SYSCOLORCHANGE desktop\n");
break;
default: def:

View file

@ -372,6 +372,11 @@ bool MainFrameBase::ProcessMessage(UINT nmsg, WPARAM wparam, LPARAM lparam, LRES
SendMessage(_hstatusbar, SB_SETTEXT, 0, lparam);
break;
case WM_SYSCOLORCHANGE:
SendMessage(_hwndrebar, WM_SYSCOLORCHANGE, 0, 0);
SendMessage(_htoolbar, WM_SYSCOLORCHANGE, 0, 0);
break;
default:
return false;
}
@ -993,6 +998,20 @@ LRESULT MDIMainFrame::WndProc(UINT nmsg, WPARAM wparam, LPARAM lparam)
}
return TRUE;} // success
case WM_SYSCOLORCHANGE: {
LRESULT res;
HWND hChild;
/* Forward WM_SYSCOLORCHANGE to common controls */
SendMessage(_hextrabar, WM_SYSCOLORCHANGE, 0, 0);
SendMessage(_hdrivebar, WM_SYSCOLORCHANGE, 0, 0);
for(hChild = GetNextWindow(_hmdiclient,GW_CHILD); hChild; hChild = GetNextWindow(hChild, GW_HWNDNEXT))
SendMessage(hChild, WM_SYSCOLORCHANGE, 0, 0);
super::ProcessMessage(nmsg, wparam, lparam, &res);
break; }
default: {
LRESULT res;

View file

@ -701,6 +701,12 @@ LRESULT MDIShellBrowserChild::WndProc(UINT nmsg, WPARAM wparam, LPARAM lparam)
}
return TRUE;}
case WM_SYSCOLORCHANGE:
/* Forward WM_SYSCOLORCHANGE to common controls */
SendMessage(_left_hwnd, WM_SYSCOLORCHANGE, 0, 0);
SendMessage(_right_hwnd, WM_SYSCOLORCHANGE, 0, 0);
break;
default:
return super::WndProc(nmsg, wparam, lparam);
}

View file

@ -345,6 +345,15 @@ LRESULT DesktopBar::WndProc(UINT nmsg, WPARAM wparam, LPARAM lparam)
case PM_GET_NOTIFYAREA:
return (LRESULT)(HWND)_hwndNotify;
case WM_SYSCOLORCHANGE:OutputDebugStringA("WM_SYSCOLORCHANGE desktopbar\n");
/* Forward WM_SYSCOLORCHANGE to common controls */
#ifndef _NO_REBAR
SendMessage(_hwndrebar, WM_SYSCOLORCHANGE, 0, 0);
#endif
SendMessage(_hwndQuickLaunch, WM_SYSCOLORCHANGE, 0, 0);
SendMessage(_hwndTaskBar, WM_SYSCOLORCHANGE, 0, 0);
break;
default: def:
return super::WndProc(nmsg, wparam, lparam);
}

View file

@ -202,6 +202,10 @@ LRESULT TaskBar::WndProc(UINT nmsg, WPARAM wparam, LPARAM lparam)
case PM_GET_LAST_ACTIVE:
return (LRESULT)(HWND)_last_foreground_wnd;
case WM_SYSCOLORCHANGE:
SendMessage(_htoolbar, WM_SYSCOLORCHANGE, 0, 0);
break;
default: def:
if (nmsg == WM_SHELLHOOK) {
switch(wparam) {