최상단 광고

2012년 4월 11일 수요일

SetWindowPos


SetWindowPos(NULL,0,0,100,100,SWP_NOMOVE | SWP_NOZORDER);
■ 의미
  SetWindowsPos 함수는 윈도우의 위치를 지정하는 Win32API 함수.

■ 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함수에서 네번째와 다섯번째 인자가 무시.



[모든 창에 최상위 윈도우 창 띄우는 법]
모든 창 위에 최상위창(topmost window)을 띄우는 방법에는 두 가지가 있습니다. 창을 이미
  생성했다면 창의 실행시 확장 스타일 비트로 WS_EX_TOPMOST를 지정하면 되며, 그렇지 않다면
  CWnd::SetWindowPos를 호출한 후 데이터 멤버인 wndTopMost를 전달하면 됩니다. 스타일 비트가
  설정돼 있는지 확인하려면 CWnd::GetExStyle을 불러 간단히 해결할 수 있습니다. 다음 코드를
  참조하십시오.


  void ToggleTopMost(CWnd* pWnd) {
  if (pWnd->GetExStyle() & WS_EX_TOPMOST)
    pWnd->SetWindowPos(&wndNoTopMost, 0, 0, 0, 0
                            SWP_NOSIZE | SWP_NOMOVE);
  else
      pWnd->SetWindowPos(&wndTopMost, 0, 0, 0, 0
                            SAWP_NOSIZE | SWP_NOMOVE);
  }


===>
ValueMeaning
HWND_BOTTOMPlaces the window at the bottom of the Z order. If the hWndparameter identifies a topmost window, the window loses its topmost status and is placed at the bottom of all other windows.
HWND_NOTOPMOSTPlaces the window above all non-topmost windows (that is, behind all topmost windows). This flag has no effect if the window is already a non-topmost window.
HWND_TOPPlaces the window at the top of the Z order.
HWND_TOPMOSTPlaces the window above all non-topmost windows. The window maintains its topmost position even when it is deactivated

댓글 없음: