Nikolay Sivov : comctl32: Forward WM_MEASUREITEM to Rebar notification window.

Alexandre Julliard julliard at winehq.org
Mon May 20 15:13:57 CDT 2013


Module: wine
Branch: master
Commit: 2d5abbd1d732b60a6bb9771f358f126b9db8ccb8
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=2d5abbd1d732b60a6bb9771f358f126b9db8ccb8

Author: Nikolay Sivov <nsivov at codeweavers.com>
Date:   Sun May 19 23:51:33 2013 +0400

comctl32: Forward WM_MEASUREITEM to Rebar notification window.

---

 dlls/comctl32/rebar.c       |    4 +---
 dlls/comctl32/tests/rebar.c |   24 ++++++++++++++++++++++--
 2 files changed, 23 insertions(+), 5 deletions(-)

diff --git a/dlls/comctl32/rebar.c b/dlls/comctl32/rebar.c
index fa21baa..461dc34 100644
--- a/dlls/comctl32/rebar.c
+++ b/dlls/comctl32/rebar.c
@@ -46,7 +46,6 @@
  *   - RB_SETTOOLTIPS
  *   - WM_CHARTOITEM
  *   - WM_LBUTTONDBLCLK
- *   - WM_MEASUREITEM
  *   - WM_PALETTECHANGED
  *   - WM_QUERYNEWPALETTE
  *   - WM_RBUTTONDOWN
@@ -3723,6 +3722,7 @@ REBAR_WindowProc (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
 	case WM_COMMAND:
 	case WM_DRAWITEM:
 	case WM_NOTIFY:
+        case WM_MEASUREITEM:
             return SendMessageW(REBAR_GetNotifyParent (infoPtr), uMsg, wParam, lParam);
 
 
@@ -3748,8 +3748,6 @@ REBAR_WindowProc (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
 	case WM_LBUTTONUP:
 	    return REBAR_LButtonUp (infoPtr);
 
-/*      case WM_MEASUREITEM:    supported according to ControlSpy */
-
 	case WM_MOUSEMOVE:
 	    return REBAR_MouseMove (infoPtr, lParam);
 
diff --git a/dlls/comctl32/tests/rebar.c b/dlls/comctl32/tests/rebar.c
index 88c931c..331af28 100644
--- a/dlls/comctl32/tests/rebar.c
+++ b/dlls/comctl32/tests/rebar.c
@@ -124,7 +124,9 @@ static HWND build_toolbar(int nr, HWND hParent)
     return hToolbar;
 }
 
-static LRESULT CALLBACK MyWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
+static int g_parent_measureitem;
+
+static LRESULT CALLBACK parent_wndproc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
 {
     switch (msg)
     {
@@ -135,6 +137,9 @@ static LRESULT CALLBACK MyWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lPa
                     GetClientRect(lpnm->hwndFrom, &height_change_notify_rect);
             }
             break;
+        case WM_MEASUREITEM:
+            g_parent_measureitem++;
+            break;
     }
     return DefWindowProcA(hWnd, msg, wParam, lParam);
 }
@@ -1056,7 +1061,7 @@ static BOOL register_parent_wnd_class(void)
     wc.hbrBackground = GetSysColorBrush(COLOR_WINDOW);
     wc.lpszMenuName = NULL;
     wc.lpszClassName = "MyTestWnd";
-    wc.lpfnWndProc = MyWndProc;
+    wc.lpfnWndProc = parent_wndproc;
 
     return RegisterClassA(&wc);
 }
@@ -1106,6 +1111,20 @@ static void test_showband(void)
     DestroyWindow(hRebar);
 }
 
+static void test_notification(void)
+{
+    MEASUREITEMSTRUCT mis;
+    HWND rebar;
+
+    rebar = create_rebar_control();
+
+    g_parent_measureitem = 0;
+    SendMessageA(rebar, WM_MEASUREITEM, 0, (LPARAM)&mis);
+    ok(g_parent_measureitem == 1, "got %d\n", g_parent_measureitem);
+
+    DestroyWindow(rebar);
+}
+
 START_TEST(rebar)
 {
     HMODULE hComctl32;
@@ -1132,6 +1151,7 @@ START_TEST(rebar)
     test_bandinfo();
     test_colors();
     test_showband();
+    test_notification();
 
     if(!is_font_installed("System") || !is_font_installed("Tahoma"))
     {




More information about the wine-cvs mailing list