-
[Win32 API] 윈도우 모니터 중간으로 위치 이동하기Programming Language/C++ 2017. 8. 8. 22:15
(2014년에 네이버 블로그에서 작성했던 글을 티스토리로 옮기며 이관했습니다)
폼 위치는 WNDCLASS 구조체나, CreateWindow 파라미터로 지정할 수 없기 때문에 WM_CREATE 메시지지로, SetWindowPos 또는 MoveWindow API로 변경합니다.
보통 폼 위치만 바꾸는 기능은 MoveWindow이기 때문에 SetWindowPos 보다는 MoveWindow를 많이 사용합니다.
BOOL MoveWindow(HWND hWnd, int X, int Y, int nWidth, int nHeight, BOOL bRepaint);
hWnd - 크기를 변경할 윈도우의 핸들
X - left
Y - top
nWidth - right
nHeight - bottom
bRepaint - 1 또는 0(TRUE OR FALSE)을 인수로 갖는다. 1이면 윈도우가 이동된 후 WM_PAINT 메시지로 윈도우를 새로 그립니다.
12345678910111213case WM_CREATE:int x, y, width, height;RECT rtDesk, rtWindow;GetWindowRect(GetDesktopWindow(), &rtDesk);GetWindowRect(hWnd, &rtWindow);width = rtWindow.right - rtWindow.left;height = rtWindow.bottom - rtWindow.top;x = (rtDesk.right - width) / 2;y = (rtDesk.bottom - height) / 2;MoveWindow(hWnd, x, y, width, height, TRUE);cs 'Programming Language > C++' 카테고리의 다른 글
인라인 함수 (0) 2017.08.08 [Win32 API] 다이얼로그 아이콘 변경 (0) 2017.08.08 LRESULT / CALLBACK / WPARAM / LPARAM (0) 2017.07.09 __cdecl, __stdcall 차이점 (2) 2017.01.02 C++ 템플릿 클래스는 언제 생성될까? (0) 2016.12.10