[PATCH 3/6] comctl32/combo: Add test for WM_CTLCOLORSTATIC
Fabian Maurer
dark.shadow4 at web.de
Sat Sep 21 13:35:05 CDT 2019
Signed-off-by: Fabian Maurer <dark.shadow4 at web.de>
---
dlls/comctl32/tests/combo.c | 37 +++++++++++++++++++++++++++++++++++++
1 file changed, 37 insertions(+)
diff --git a/dlls/comctl32/tests/combo.c b/dlls/comctl32/tests/combo.c
index 923d826b30..5a1ba408f0 100644
--- a/dlls/comctl32/tests/combo.c
+++ b/dlls/comctl32/tests/combo.c
@@ -46,6 +46,8 @@ static HWND hComboExParentWnd, hMainWnd;
static HINSTANCE hMainHinst;
static const char ComboExTestClass[] = "ComboExTestClass";
+static HBRUSH brush_red;
+
static BOOL (WINAPI *pSetWindowSubclass)(HWND, SUBCLASSPROC, UINT_PTR, DWORD_PTR);
#define MAX_CHARS 100
@@ -507,6 +509,8 @@ static BOOL init(void)
wc.lpfnWndProc = ComboExTestWndProc;
RegisterClassA(&wc);
+ brush_red = CreateSolidBrush(RGB(255, 0, 0));
+
hMainWnd = CreateWindowA(WC_STATICA, "Test", WS_OVERLAPPEDWINDOW, 10, 10, 300, 300, NULL, NULL, NULL, 0);
ShowWindow(hMainWnd, SW_SHOW);
@@ -533,6 +537,7 @@ static void cleanup(void)
UnregisterClassA(ComboExTestClass, GetModuleHandleA(NULL));
DestroyWindow(hMainWnd);
+ DeleteObject(brush_red);
}
static void test_comboex_subclass(void)
@@ -748,6 +753,8 @@ static LRESULT CALLBACK parent_wnd_proc(HWND hwnd, UINT msg, WPARAM wparam, LPAR
break;
}
break;
+ case WM_CTLCOLORSTATIC:
+ return (LRESULT) brush_red;
}
return CallWindowProcA(old_parent_proc, hwnd, msg, wparam, lparam);
@@ -1254,6 +1261,35 @@ static void test_combo_dropdown_size(DWORD style)
}
}
+static void test_WM_CTLCOLORSTATIC(void)
+{
+ HBRUSH brush;
+ LOGBRUSH logbrush;
+ int result;
+ COMBOBOXINFO info;
+ COLORREF color_expected = RGB(255, 0, 0);
+ HWND handle_combo = create_combobox(CBS_DROPDOWN);
+
+ old_parent_proc = (void *)SetWindowLongPtrA(hMainWnd, GWLP_WNDPROC, (ULONG_PTR)parent_wnd_proc);
+
+ info.cbSize = sizeof(COMBOBOXINFO);
+ SetLastError(0xdeadbeef);
+ result = GetComboBoxInfo(handle_combo, &info);
+ ok(result, "Failed to get combobox info structure.\n");
+
+ SendMessageA(info.hwndItem, EM_SETREADONLY, (WPARAM)TRUE, 0);
+ brush = (HBRUSH)SendMessageA(handle_combo, WM_CTLCOLORSTATIC, 0, (LPARAM)info.hwndItem);
+
+ result = GetObjectA(brush, sizeof(logbrush), &logbrush);
+ ok(result > 0, "GetObject failed: %d!\n", GetLastError());
+
+ todo_wine
+ ok(logbrush.lbColor == color_expected, "Expected %x, got %x\n", color_expected, logbrush.lbColor);
+
+ DestroyWindow(handle_combo);
+ SetWindowLongPtrA(hMainWnd, GWLP_WNDPROC, (ULONG_PTR)old_parent_proc);
+}
+
START_TEST(combo)
{
ULONG_PTR ctx_cookie;
@@ -1281,6 +1317,7 @@ START_TEST(combo)
}
/* ComboBox control tests. */
+ test_WM_CTLCOLORSTATIC();
test_combo_WS_VSCROLL();
test_combo_setfont(CBS_DROPDOWN);
test_combo_setfont(CBS_DROPDOWNLIST);
--
2.23.0
More information about the wine-devel
mailing list