SetWindowPos() |
BOOL SetWindowPos(const CWnd* pWndInsertAfter, int x, int y, int cx, int cy, UINT nFlags); |
SetwindowExt() 와 비슷한 메서드가있는데 SetWindowPos() 라는 메서드이다. |
SetWindowPos() 함수는 윈도우의 위치를 지정하는 함수 라고 보면 된다. |
첫번째 인자 pWndInsertAfter 에는 Z-order 이 들어가는데 Z-order의 종류에는 4가지가 있다. |
그전에 Z-order란? 두 윈도우가 겹쳐있을 때 어떤것이 아래이고 어떤것이 위인지를 결정하는 값이다. |
WndBottom | Z-order를 최하위로 한다. |
WndTop | Z-order를 최상위로 한다. |
WndTopMost | Z-order를 최상위로 하고 시스템 윈도우 속성 |
WndNoTopMost | 일반 윈도우 중 최상위 윈도우가 되도록 한다. |
두번째 인자 x, y는 새로 설정할 윈도우의 왼쪽 위 좌표이다.
(이값을 변경하면 윈도우가 이동한다)
세번째 cx, cy 인자는 새로 설정할 윈도우의 폭과 높이가 된다.(크기 변경할때 쓴다.)
마지막인자 nFlags
■ Flag
ShowWindow API의 인자에 지정된 플래그 상수
플래그 | 의미 |
SW_HIDE | 윈도우를 숨기고 다른 윈도우를 활성 상태로 만든다. |
SW_MAXIMIZE | 윈도우를 최대화 한다. |
SW_MINIMIZE | 윈도우를 최소화하고 다른 윈도우를 활성 상태로 만든다. |
SW_RESTORE | 최대/최소화를 원래 상태로 복원한다. |
SW_SHOW | 윈도우를 나타내고 활성 상태로 만든다. |
SW_SHOWNA | 윈도우를 나타내고 활성 상태로 하지 않는다. |
SW_SHOWDEFAULT | 윈도우를 처음 프로그램 시작할 때 지정된 값으로 변경한다. |
SW_SHOWNORMAL | 윈도우를 나타내고 활성상태로 만든다. 최대화/최소화된 경우에는 원래대로 복원한다. |
SW_SHOWACTIVE | 윈도우를 활성 상태로 하지 않는다는 것을 제외하면 SW_SHOWNORMAL과 같다. |
SetWindowPos API의 인자로 지정되는 플래그 상수
플래그 | 의미 |
SWP_HIDEWINDOW | 윈도우를 숨긴다. |
SWP_NOACTIVATE | 윈도우를 활성화하지 않는다. |
SWP_NOMOVE | 윈도우를 이동하지 않는다. |
SWP_MOOWNERZORDER | 소유 윈도우의 Z순서를 변경하지 않는다. |
SWP_NOREDRAW | 윈도우를 다시 그리지 않는다. |
SWP_NOSIZE | 윈도우의 크기를 변경하지 않는다. |
SWP_NOZORDER | 윈도우의 Z 순서를 변경하지 않는다. |
SWP_SHOWINDOW | 윈도우를 나타낸다. |
- SWP_NOMOVE : SetWindowPos함수에서 두번째와 세번째 인자가 무시.
- SWP_NOZORDER : SetWindowPos함수에서 첫번째 인자가 무시.
- SWP_NOSIZE : SetWindowPos함수에서 네번째와 다섯번째 인자가 무시.
사용예
SetWindowPos(&CWnd::wndTop, 10, 10 , 0, 0, SWP_SHOWWINDOW | SWP_NOZORDER | SWP_NOSIZE);