https://git.reactos.org/?p=reactos.git;a=commitdiff;h=2a93f61fcb5c46d2960b4…
commit 2a93f61fcb5c46d2960b49cd9f6166b4ead26b12
Author: Katayama Hirofumi MZ <katayama.hirofumi.mz(a)gmail.com>
AuthorDate: Wed Nov 20 09:23:32 2019 +0900
Commit: GitHub <noreply(a)github.com>
CommitDate: Wed Nov 20 09:23:32 2019 +0900
[USER32_APITEST] Power to DM_REPOSITION testcase (#2055)
- Add the minimized case.
- Add a test for WS_DISPLAYCHANGE message.
CORE-16490
---
modules/rostests/apitests/user32/DM_REPOSITION.c | 41 ++++++++++++++++++++--
modules/rostests/apitests/user32/user32_apitest.rc | 2 +-
2 files changed, 40 insertions(+), 3 deletions(-)
diff --git a/modules/rostests/apitests/user32/DM_REPOSITION.c
b/modules/rostests/apitests/user32/DM_REPOSITION.c
index 70d7c9e7632..f61aff4c3f2 100644
--- a/modules/rostests/apitests/user32/DM_REPOSITION.c
+++ b/modules/rostests/apitests/user32/DM_REPOSITION.c
@@ -10,10 +10,11 @@
static BOOL OnInitDialog(HWND hwnd, HWND hwndFocus, LPARAM lParam)
{
- RECT rc, rcWork;
- INT cx, cy;
+ RECT rc, rc2, rcWork;
+ INT cx, cy, nBitsPixel;
HMONITOR hMon;
MONITORINFO mi = { sizeof(mi) };
+ HDC hdc;
/* get monitor info */
hMon = MonitorFromWindow(hwnd, MONITOR_DEFAULTTONEAREST);
@@ -63,6 +64,42 @@ static BOOL OnInitDialog(HWND hwnd, HWND hwndFocus, LPARAM lParam)
ok_long(rc.right, rc.left + cx);
ok_long(rc.bottom, rc.top + cy);
+ /* minimize */
+ ShowWindow(hwnd, SW_MINIMIZE);
+ ok_int(GetWindowRect(hwnd, &rc), TRUE);
+
+ /* reposition */
+ ok_int(SendMessageW(hwnd, DM_REPOSITION, 0, 0), 0);
+ ok_int(GetWindowRect(hwnd, &rc2), TRUE);
+ ok_int(EqualRect(&rc, &rc2), TRUE);
+
+ /* restore */
+ ShowWindow(hwnd, SW_RESTORE);
+
+ /* move */
+ ok_int(SetWindowPos(hwnd, NULL,
+ rcWork.right - cx + 80, rcWork.bottom - cy + 80, 0, 0,
+ SWP_NOACTIVATE | SWP_NOSIZE | SWP_NOOWNERZORDER |
+ SWP_NOZORDER), TRUE);
+ ok_int(GetWindowRect(hwnd, &rc), TRUE);
+ ok_long(rc.left, rcWork.right - cx + 80);
+ ok_long(rc.top, rcWork.bottom - cy + 80);
+ ok_long(rc.right, rc.left + cx);
+ ok_long(rc.bottom, rc.top + cy);
+
+ /* WM_DISPLAYCHANGE */
+ hdc = GetWindowDC(hwnd);
+ nBitsPixel = GetDeviceCaps(hdc, BITSPIXEL);
+ ReleaseDC(hwnd, hdc);
+ SendMessageW(hwnd, WM_DISPLAYCHANGE, nBitsPixel,
+ MAKELONG(GetSystemMetrics(SM_CXSCREEN),
+ GetSystemMetrics(SM_CYSCREEN)));
+ ok_int(GetWindowRect(hwnd, &rc), TRUE);
+ ok_long(rc.left, rcWork.right - cx + 80);
+ ok_long(rc.top, rcWork.bottom - cy + 80);
+ ok_long(rc.right, rc.left + cx);
+ ok_long(rc.bottom, rc.top + cy);
+
/* quit */
PostMessage(hwnd, WM_COMMAND, IDOK, 0);
return TRUE;
diff --git a/modules/rostests/apitests/user32/user32_apitest.rc
b/modules/rostests/apitests/user32/user32_apitest.rc
index 8f56c8c8647..6c7cfe5ec81 100644
--- a/modules/rostests/apitests/user32/user32_apitest.rc
+++ b/modules/rostests/apitests/user32/user32_apitest.rc
@@ -33,7 +33,7 @@ FONT 8, "MS Shell Dlg"
}
REPOSITION DIALOG 0, 0, 200, 150
-STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
+STYLE WS_OVERLAPPEDWINDOW
CAPTION "DM_REPOSITION"
FONT 8, "MS Shell Dlg"
{