SetParent
SetParent
지정된 윈도우의 친윈도우를 변경합니다.새로운 친윈도우는 아이 윈도우와 같은 프로세스에 속하고 있을 필요가 있습니다.
HWND SetParent( HWND hwndChild, // 아이 윈도우의 핸들 HWND hwndNewParent // 새로운 친윈도우의 핸들 );
USER32.DLL
인수
- hwndChild
-
친윈도우를 변경하는 아이 윈도우의 핸들을 지정합니다.
- hwndNewParent
-
새로운 친윈도우의 핸들을 지정합니다.0 (NULL) (을)를 지정하면, 톱 레벨 윈도우(친윈도우를 가지지 않는 윈도우)가 됩니다.
Windows 2000/XP: 이 파라미터에 -3 (HWND_MESSAGE) (을)를 지정하면, 아이 윈도우는 메세지 온리 윈도우가 됩니다.
반환값
함수가 성공하면, 직전의 친윈도우의 핸들이 돌아갑니다.
함수가 실패하면 0 (NULL) 하지만 돌아갑니다.확장 에러 정보를 취득하려면 , GetLastError 함수를 사용합니다.
해설
지정된 아이 윈도우가 가시 상태에 있는 경우는, 윈도우가 재묘화 됩니다.
호환성을 유지하기 위해서, SetParent 함수는 친윈도우가 변경되어도, 지정된 아이 윈도우의 WS_CHILD (이)나 WS_POPUP 스타일을 변경하지 않습니다.그 때문에, 톱 레벨 윈도우를 아이 윈도우로 변경하는 경우는, SetParent 함수를 호출하기 전에, GetWindowLong 함수 및 SetWindowLong 함수를 이용하고, WS_POPUP 스타일을 없애 WS_CHILD 스타일을 추가하지 않으면 안됩니다.반대로, 아이 윈도우를 톱 레벨 윈도우로 변경하는 경우에는, SetParent 함수를 호출한 후에, WS_CHILD 스타일을 없애 WS_POPUP 스타일을 추가하지 않으면 안됩니다.
대응 정보
Windows 95 이후 / Windows NT 3.1 이후