> + case WM_SYSKEYDOWN:
> + if (wParam == VK_DOWN)
> + {
> + POINT pt;
> + RECT rect;
> + GetClientRect(hwnd, &rect);
> + pt.x = rect.right - GetSystemMetrics(SM_CXVSCROLL)/2;
> + pt.y = rect.top + GetSystemMetrics(SM_CYHSCROLL)/2;
> +
> + return DATETIME_LButtonDown (infoPtr, (SHORT)pt.x, (SHORT)pt.y);
> + }
> +
If it really works this way you should just make it drop directly,
without faking click point coordinates.
> +static void test_dtm_hotkey(void)
> +{
> + HWND hWnd;
> + HWND hWndMonthCal;
> +
> + hWnd = create_datetime_control(0);
> + ok(hWnd != NULL, "Expected window to be valid\n");
> + ShowWindow(hWnd, SW_NORMAL);
> +
> + hWndMonthCal = SendMessageA(hWnd, DTM_GETMONTHCAL, 0, 0);
> + ok(hWndMonthCal != NULL, "Expected MonthCal to be valid\n");
> + ok(!IsWindowVisible(hWndMonthCal), "Expected MonthCal to be invisible\n");
> +
> + SendMessageA(hWnd, WM_SYSKEYDOWN, VK_DOWN, 0);
> + ok(IsWindowVisible(hWndMonthCal), "Expected MonthCal to be visible\n");
> +
> + DestroyWindow(hWnd);
> +}
Please add notification tests too.