[1/3] user32: Send the correct WM_CTLCOLOR* message in button WM_SETTEXT handler.

Sebastian Lackner sebastian at fds-team.de
Tue Apr 19 15:14:49 CDT 2016


From: Alexander Lakhin <exclusion at gmail.com>

Signed-off-by: Sebastian Lackner <sebastian at fds-team.de>
---
 dlls/user32/button.c |   13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/dlls/user32/button.c b/dlls/user32/button.c
index 9c52147..efd74f9 100644
--- a/dlls/user32/button.c
+++ b/dlls/user32/button.c
@@ -389,13 +389,18 @@ LRESULT ButtonWndProc_common(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam,
         HBRUSH hbrush;
         RECT client, rc;
         HWND parent = GetParent(hWnd);
+        UINT message = (btn_type == BS_PUSHBUTTON ||
+                        btn_type == BS_DEFPUSHBUTTON ||
+                        btn_type == BS_USERBUTTON ||
+                        btn_type == BS_OWNERDRAW) ?
+                        WM_CTLCOLORBTN : WM_CTLCOLORSTATIC;
 
         if (!parent) parent = hWnd;
-        hbrush = (HBRUSH)SendMessageW(parent, WM_CTLCOLORSTATIC,
-				      (WPARAM)hdc, (LPARAM)hWnd);
+        hbrush = (HBRUSH)SendMessageW(parent, message,
+                                      (WPARAM)hdc, (LPARAM)hWnd);
         if (!hbrush) /* did the app forget to call DefWindowProc ? */
-            hbrush = (HBRUSH)DefWindowProcW(parent, WM_CTLCOLORSTATIC,
-					    (WPARAM)hdc, (LPARAM)hWnd);
+            hbrush = (HBRUSH)DefWindowProcW(parent, message,
+                                            (WPARAM)hdc, (LPARAM)hWnd);
 
         GetClientRect(hWnd, &client);
         rc = client;
-- 
2.7.1



More information about the wine-patches mailing list