https://git.reactos.org/?p=reactos.git;a=commitdiff;h=2a93f61fcb5c46d2960b49...
commit 2a93f61fcb5c46d2960b49cd9f6166b4ead26b12 Author: Katayama Hirofumi MZ katayama.hirofumi.mz@gmail.com AuthorDate: Wed Nov 20 09:23:32 2019 +0900 Commit: GitHub noreply@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" {