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);

+ Recent posts