From: Mark Harmstone Subject: [PATCH] comctl32: Redraw themed button on WM_ENABLE. Message-Id: <55108DAD.1010009@burntcomma.com> Date: Mon, 23 Mar 2015 22:03:25 +0000 When a themed button received a WM_ENABLE message, comctl32 redraws it, then passes the message to the parent proc in user32. Unfortunately, this is the wrong way round - as user32 redraws the window itself, the themed button will be redrawn as its unthemed counterpart. --- dlls/comctl32/theme_button.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/dlls/comctl32/theme_button.c b/dlls/comctl32/theme_button.c index 5a3b4b4..99c650f 100644 --- a/dlls/comctl32/theme_button.c +++ b/dlls/comctl32/theme_button.c @@ -379,10 +379,11 @@ LRESULT CALLBACK THEMING_ButtonSubclassProc(HWND hwnd, UINT msg, return THEMING_CallOriginalClass(hwnd, msg, wParam, lParam); case WM_ENABLE: + result = THEMING_CallOriginalClass(hwnd, msg, wParam, lParam); theme = GetWindowTheme(hwnd); if (theme) RedrawWindow(hwnd, NULL, NULL, RDW_FRAME | RDW_INVALIDATE | RDW_UPDATENOW); - return THEMING_CallOriginalClass(hwnd, msg, wParam, lParam); + return result; case WM_MOUSEMOVE: {