DeferWindowPos

DeferWindowPos 함수 지정 된 다중-창-지정한 창에 대 한 위치 구조를 업데이트합니다. 함수는 다음 업데이트 구조에는 핸들을 반환합니다. EndDeferWindowPos 함수에서는이 구조체의 정보를 사용 하 여 위치와 다양 한 윈도우의 크기를 동시에 변경 합니다. BeginDeferWindowPos 함수는 구조를 만듭니다.

HDWP DeferWindowPos ( HDWP  hWinPosInfo, / / 내부 구조에 대 한 핸들HWNDhWnd, / / 위치는 창 핸들HWNDhWndInsertAfter, / / 배치 순서 처리int x, / / 가로 위치 int y, / / 수직 위치 int cx, // width int cy, // heightUINTuFlags / / 플래그 창 위치);
 

매개 변수

hWinPosInfo
다중 창-하나 이상의 창에 대 한 크기와 위치 정보를 포함 하는 위치 구조를 처리 합니다. 이 구조는 BeginDeferWindowPos 또는 DeferWindowPos 에 대 한 가장 최근의 호출 반환 됩니다.
hWnd
구조에 저장 된 정보는 업데이트에 대 한 창 핸들.
hWndInsertAfter
Z 순서에 따라 위치가 지정 된 창 앞에 있는 창에 대 한 핸들. 이 매개 변수는 창 핸들 또는 다음 값 중 하나 여야:
의미
HWND_BOTTOM 창 Z 순서의 맨 아래에 배치합니다. HWnd 매개 변수는 최상위 창을 식별 하는 경우 창 맨 위 지위를 잃는다 고 다른 모든 창 맨 아래에 배치 됩니다.
HWND_NOTOPMOST 장소는 창 위의 모든 비-최상위 창 (즉, 모든 최상위 창 뒤에). 이 플래그는 아무런 효과가 창이 아닌 최상위 창 이미 경우.
HWND_TOP Z 순서의 맨 창 배치.
HWND_TOPMOST 위의 모든 아닌 최상위 윈도우 창에 넣습니다. 비활성화 된 경우에 맨 위 위치를 유지 하는 창.

UFlags 매개 변수에서 SWP_NOZORDER 플래그가 설정 되어 있으면이 매개 변수는 무시 됩니다.

x
윈도우의 왼쪽 위 모서리의 x 좌표를 지정합니다.
y
윈도우의 왼쪽 위 모서리의 y 좌표를 지정합니다.
cx
창의 새 너비를 픽셀 단위로 지정.
cy
창의 새로운 높이 픽셀 단위로 지정.
uFlags
크기와 해당 창의 위치에 영향을 주는 다음 값의 조합 지정:
의미
SWP_DRAWFRAME 창 주위 프레임 (윈도우의 클래스 설명에 정의 됨)를 그립니다.
SWP_FRAMECHANGED 윈도우의 크기가 변경 되지 않습니다 경우에 창에 WM_NCCALCSIZE 메시지를 보냅니다. 윈도우의 크기를 변경 하는 경우에 WM_NCCALCSIZE 보낸이 플래그를 지정 하는 경우.
SWP_HIDEWINDOW 창 숨기기.
SWP_NOACTIVATE 창을 활성화 하지 않습니다. 창 활성화 및 ( hWndInsertAfter 매개 변수 설정)에 따라 또는 비 맨 그룹의 상단으로 이동이 플래그가 설정 되지 않은 경우.
SWP_NOCOPYBITS 클라이언트 영역의 전체 내용을 삭제합니다. 클라이언트 영역의 유효한 내용은 저장 및 창 크기 또는 위치를 변경 하는 후 클라이언트 영역으로 다시 복사이 플래그를 지정 하는 경우.
SWP_NOMOVE 현재 위치를 유지 ( XY 매개 변수 무시).
SWP_NOOWNERZORDER Z 순서에서 소유자 창의 위치를 변경 하지 않습니다.
SWP_NOREDRAW 변경 내용을 다시 그리기 하지 않습니다. 이 플래그를 설정 하는 경우 어떤 종류의 다시 그리기 발생 합니다. 이 클라이언트 영역 (제목 표시줄 및 스크롤 막대를 포함 하 여) 비클라이언트 영역에 적용 됩니다 및 부모 윈도우의 모든 부분 이동 창의 결과로 발견. 응용 프로그램이 명시적으로 무효화 해야 합니다 또는 창과 부모 창을 다시 그릴 필요의 모든 부분을 다시 그리도록이 플래그가 설정 된 경우.
SWP_NOREPOSITION SWP_NOOWNERZORDER 플래그와 동일.
SWP_NOSENDCHANGING 창을 WM_WINDOWPOSCHANGING 메시지를 수신 하는 것을 방지합니다.
SWP_NOSIZE 현재 크기 ( cxcy 매개 변수 무시) 유지.
SWP_NOZORDER 현재 Z 순서를 유지 ( hWndInsertAfter 매개 변수를 무시).
SWP_SHOWWINDOW 창 표시.

반환 값

반환 값은 업데이트 다중-창-위치 구조를 식별합니다. 이 함수에 의해 반환 된 핸들은 함수에 전달 하는 핸들에서 달라질 수 있습니다. DeferWindowPos 또는 EndDeferWindowPos 함수를 다음 호출 하는 동안이 함수가 반환 하는 새 핸들을 전달 한다.

성공 하려면 함수에 사용할 수 있는 시스템 리소스가 부족 한 경우 반환 값은 NULL입니다. 확장 된 오류 정보를 얻을 하려면 GetLastError.

주의

DeferWindowPos 호출에 실패 하는 경우 응용 프로그램 창 위치 작업을 포기 해야 하 고 EndDeferWindowPos 를 호출 하지.

SWP_NOZORDER을 지정 하지 않으면 hWndInsertAfter 매개 변수에 의해 식별 된 창 다음 위치에서 hWnd 매개 변수에 의해 식별 된 창을 배치 됩니다. HWndInsertAfter 은 NULL 또는 HWND_TOP, hWnd 창 z의 상단에 배치 됩니다. 시스템 Z 순서에서 맨 hWnd 창 배치 hWndInsertAfter 를 HWND_BOTTOM로 설정 하는 경우.

자식 창에 대 한 모든 좌표는 부모 창의 클라이언트 영역의 왼쪽 위 모서리를 기준으로.

HWndInsertAfter SWP_NOZORDER 플래그가 설정 되어 있지 않은 보장 HWND_TOPMOST 플래그를 설정 하거나 기존 최상위 창을 위에 오도록 Z 순서에서 창의 위치를 설정 하 여 맨 위에 있는 창 창을 만들 수 있습니다. 비-최상위 창 맨 위에 있는 때에 소유 windows 최상위도 적용 됩니다. 그러나, 그것의 소유자를 변경 되지 않습니다.

HWndInsertAfter 에 지정 된 값은 다음과 같은 경우에만 사용 하는 SWP_NOACTIVATE도 SWP_NOZORDER 플래그 (때, 즉 응용 프로그램 요청 창이 동시에 활성화 될 하 고 Z 순서에서 해당 위치가 변경)를 지정 하는 경우:

응용 프로그램은 또한 Z 순서의 맨 하 려 하지 않고 비활성 창을 활성화할 수 없습니다. 응용 프로그램 제한 없이 Z 순서로 활성화 된 윈도우의 위치를 변경할 수 있습니다 또는 창을 활성화 하 고 맨 위 또는 맨 위 비 창 맨 이동 수 있습니다.

최상위 창을 맨 위 Z 순서 또는 어떤 아닌 최상위 창 후 (HWND_BOTTOM) 하단에 위치는 경우 이상 이다. 최상위 창이 아닌 최상위 때 그것의 소유자와 그 소유 windows 또한 만들어진 아닌 최상위 창.

최상위 창 소유 하는 아닌 최상위 창 수 있지만 반대로. 최상위 창 소유 하 고 모든 창 (예: 대화 상자) 모두 소유 windows 그들의 소유자 이상 유지 되도록 최상위 창을 만들어 그 자체입니다.

QuickInfo

nbsp;?Windows &NT: 버전 3.1 이상이 필요 합니다.
Windows:Windows 95 이상이 필요합니다.
Windows CE:지원 되지 않습니다.
헤더:Winuser.h에서 선언합니다.
가져오기 라이브러리:User32.lib를 사용 하 여.

참고 항목

창 개요 창 기능, BeginDeferWindowPos, EndDeferWindowPos, ShowWindow

 

Index