SetWindowPos 함수는 크기, 위치 및 자녀, 팝업, 또는 최상위 창의 Z 순서를 변경합니다. 아이, 팝업, 및 최상위 창을 화면에 자신의 모습에 따라 정렬 됩니다. 최상위 창 가장 높은 순위를 받으며 Z 순서에서 첫 번째 창.
(BOOL SetWindowPos HWND hWnd, / / 창 핸들HWNDhWndInsertAfter, / / 배치 순서 처리int X, / / 가로 위치int Y, / / 수직 위치 int cx, // width int cy, // heightUINTuFlags / / 플래그 창 위치);
| 값 | 의미 |
|---|---|
| HWND_BOTTOM | 창 Z 순서의 맨 아래에 배치합니다. HWnd 매개 변수는 최상위 창을 식별 하는 경우 창 맨 위 지위를 잃는다 고 다른 모든 창 맨 아래에 배치 됩니다. |
| HWND_NOTOPMOST | 장소는 창 위의 모든 비-최상위 창 (즉, 모든 최상위 창 뒤에). 이 플래그는 아무런 효과가 창이 아닌 최상위 창 이미 경우. |
| HWND_TOP | Z 순서의 맨 창 배치. |
| HWND_TOPMOST | 위의 모든 아닌 최상위 윈도우 창에 넣습니다. 비활성화 된 경우에 맨 위 위치를 유지 하는 창. |
이 매개 변수를 사용 하는 방법에 대 한 자세한 내용은 다음 주의 섹션을 참조 하십시오.
| 값 | 의미 |
|---|---|
| SWP_ASYNCWINDOWPOS | 호출 하는 스레드는 윈도우를 소유 하지 않는 경우 시스템 창을 소유 하는 스레드 요청을 게시 합니다. 그러면 다른 스레드에서 요청을 처리 하는 동안 실행을 차단 호출 하는 스레드. |
| SWP_DEFERERASE | WM_SYNCPAINT 메시지의 생성을 방지. |
| SWP_DRAWFRAME | 창 주위 프레임 (윈도우의 클래스 설명에 정의 됨)를 그립니다. |
| SWP_FRAMECHANGED | 윈도우의 크기가 변경 되지 않습니다 경우에 창에 WM_NCCALCSIZE 메시지를 보냅니다. 윈도우의 크기를 변경 하는 경우에 WM_NCCALCSIZE 보낸이 플래그를 지정 하는 경우. |
| SWP_HIDEWINDOW | 창 숨기기. |
| SWP_NOACTIVATE | 창을 활성화 하지 않습니다. 창 활성화 및 ( hWndInsertAfter 매개 변수 설정)에 따라 또는 비 맨 그룹의 상단으로 이동이 플래그가 설정 되지 않은 경우. |
| SWP_NOCOPYBITS | 클라이언트 영역의 전체 내용을 삭제합니다. 클라이언트 영역의 유효한 내용은 저장 및 창 크기 또는 위치를 변경 하는 후 클라이언트 영역으로 다시 복사이 플래그를 지정 하는 경우. |
| SWP_NOMOVE | 현재 위치를 유지 ( X 및 Y 매개 변수 무시). |
| SWP_NOOWNERZORDER | Z 순서에서 소유자 창의 위치를 변경 하지 않습니다. |
| SWP_NOREDRAW | 변경 내용을 다시 그리기 하지 않습니다. 이 플래그를 설정 하는 경우 어떤 종류의 다시 그리기 발생 합니다. 이 클라이언트 영역 (제목 표시줄 및 스크롤 막대를 포함 하 여) 비클라이언트 영역에 적용 됩니다 및 부모 윈도우의 모든 부분 이동 창의 결과로 발견. 응용 프로그램이 명시적으로 무효화 해야 합니다 또는 창과 부모 창을 다시 그릴 필요의 모든 부분을 다시 그리도록이 플래그가 설정 된 경우. |
| SWP_NOREPOSITION | SWP_NOOWNERZORDER 플래그와 동일. |
| SWP_NOSENDCHANGING | 창을 WM_WINDOWPOSCHANGING 메시지를 수신 하는 것을 방지합니다. |
| SWP_NOSIZE | 현재 크기 ( cx 및 cy 매개 변수 무시) 유지. |
| SWP_NOZORDER | 현재 Z 순서를 유지 ( hWndInsertAfter 매개 변수를 무시). |
| SWP_SHOWWINDOW | 창 표시. |
함수가 성공 하면 반환 값은 0이 아닌.
함수가 실패 하면 반환 값은 0입니다. 확장 된 오류 정보를 얻을 하려면 GetLastError.
윈도우를 이동 하거나 크기 수 없습니다 SWP_SHOWWINDOW 또는 SWP_HIDEWINDOW 플래그를 설정 하는 경우.
SetWindowLong사용 하 여 특정 창 데이터를 변경 하는 경우 적용 하는 변경 사항이 SetWindowPos 를 호출 해야 합니다. UFlags에 대 한 다음 조합 하 여 사용: SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER | SWP_FRAMECHANGED.
HWND_TOPMOST 및 SWP_NOZORDER 플래그를 설정 하지 않으면 되도록 hWndInsertAfter 매개 변수를 설정 하거나 기존 최상위 창을 위에 오도록 Z 순서에서 창의 위치를 설정 하 여 맨 위에 있는 창 창을 만들 수 있습니다. 비-최상위 창 맨 위에 있는 때에 소유 windows 최상위도 적용 됩니다. 그러나, 그것의 소유자를 변경 되지 않습니다.
HWndInsertAfter 에 지정 된 값은 다음과 같은 경우에만 사용 하는 SWP_NOACTIVATE도 SWP_NOZORDER 플래그 (때, 즉 응용 프로그램 요청 창이 동시에 활성화 될 하 고 Z 순서에서 해당 위치가 변경)를 지정 하는 경우:
응용 프로그램은 또한 Z 순서의 맨 하 려 하지 않고 비활성 창을 활성화할 수 없습니다. 응용 프로그램 제한 없이 Z 순서로 활성화 된 윈도우의 위치를 변경할 수 있습니다 또는 창을 활성화 하 고 맨 위 또는 맨 위 비 창 맨 이동 수 있습니다.
최상위 창을 맨 (HWND_BOTTOM)의 Z 순서 또는 어떤 아닌 최상위 창 뒤에 위치 하는 경우 그것은 더 이상 맨. 최상위 창이 아닌 최상위 때 그것의 소유자와 그 소유 windows 또한 만들어진 아닌 최상위 창.
아닌 최상위 창 맨 위에 있는 창 소유할 수 있지만 반대로 발생할 수 없습니다. 최상위 창 소유 하 고 모든 창 (예: 대화 상자)가 만든 모든 소유 windows 그들의 소유자 이상 유지 되도록 최상위 창 자체가.
SetForegroundWindow 함수를 호출 해야 합니다 응용 프로그램 전경, 그리고 물체에 있어야 하는 경우.
Windows CE: 보이는 최상위 창의 경우 SWP_NOACTIVATE 플래그를 지정 하지 않으면이 함수는 창을 활성화 됩니다. 이것은 현재 활성 창 SWP_NOACTIVATE 플래그 또는 SWP_HIDEWINDOW 플래그를 지정 하는 경우 활성화 다른 표시 최상위 창에 전달 됩니다.
이 함수에 nFlags 매개 변수에서 SWP_FRAMECHANGED 플래그를 설정 하는 경우 Windows CE 클라이언트 영역 크기를 변경할 수 있습니다 윈도우의 전체 비클라이언트 영역을 다시 그립니다. 다시 계산 비클라이언트 영역을 얻을 수 있는 유일한 방법 이며 당신은 SetWindowLong 를 호출 하 여 창 스타일을 변경한 후에 일반적으로 사용 됩니다.
SetWindowPos 항상 WM_WINDOWPOSCHANGED 메시지를 창에 전송 하면 됩니다. 이 메시지에 전달 된 플래그는 정확 하 게 함수에 전달 된 것과 동일 합니다. 다른 메시지가이 함수로 보내집니다.
Windows CE 1.0 hwndInsertAfter 매개 변수에서 HWND_TOPMOST 및 HWND_NOTOPMOST 상수를 지원 하지 않습니다.
Windows CE 1.0 fuFlags paramete에서 SWP_DRAWFRAME 또는 SWP_NOCOPYBITS 플래그를 지원 하지 않습니다.
nbsp;?Windows &NT: 버전 3.1 이상이 필요 합니다.
Windows:Windows 95 이상이 필요합니다.
Windows CE:버전 1.0 이상이 필요합니다.
헤더:Winuser.h에서 선언합니다.
가져오기 라이브러리:User32.lib를 사용 하 여.
창 개요 창 기능, MoveWindow, SetActiveWindow, SetForegroundWindow