자식 창

자식 창 WS_CHILD 스타일이 고 부모 창의 클라이언트 영역에 국한 됩니다. 일반적으로 응용 프로그램 자식 창을 사용 하 여 기능 영역으로 부모 창의 클라이언트 영역을 나눕니다. CreateWindowEx 함수 WS_CHILD 스타일을 지정 하 여 자식 창 만들기.

자식 창에 부모 창이 있어야 합니다. 겹친된 창, 팝업 창 또는 심지어 다른 자식 창에 부모 창이 될 수 있습니다. CreateWindowEx를 호출할 때 부모 창을 지정 합니다. 시스템 창이 만들어지지 않습니다 CreateWindowEx WS_CHILD 스타일이 지정 하지만 부모 창을 지정 하지 않는 경우.

자식 창의 클라이언트 영역 하지만 다른 기능을 명시적으로 요청 하지 않는 한 있다. 응용 프로그램 제목 표시줄, 창 메뉴 요청 수, 최소화 및 최대화 단추, 테두리 및 스크롤 막대가 자식 창에 대 한 하지만 자식 창 메뉴를 가질 수 없습니다. 응용 프로그램이 지정 메뉴 핸들 중 어린이 창 클래스를 등록 또는 자식 창을 만듭니다 때, 메뉴 핸들은 무시 됩니다.

포지셔닝

시스템에는 항상 자식 창이 해당 부모 창의 클라이언트 영역의 왼쪽된 위 모서리를 기준으로 배치합니다. 자식 창의 어떠한 부분도 적 부모 창 테두리 밖에 서 나타납니다. 시스템 클립 자식 창; 응용 프로그램 자식 창의 부모 창 보다 큰 또는 그 일부 또는 모든 자식 창이 상위 범위를 넘어서는 자식 창의 위치를 만드는 경우 즉, 부모 창의 클라이언트 영역 외부 부분이 표시 되지 않습니다. 부모 창에 영향을 주는 작업 또한 자식 창 같이 달라질 수 있습니다.

부모 창 자식 창
파괴 부모 창 소멸 되기 전에 파괴.
숨겨진 부모 창이 숨겨진 전에 숨겨져 있습니다. 자식 창에 부모 창이 표시 되는 경우에 표시 됩니다.
이동 부모 창의 클라이언트 영역으로 이동합니다. 자식 창 이동 후의 클라이언트 영역을 그림을 담당 합니다.
표시 부모 창이 표시 된 후 표시.

클리핑

시스템은 부모 창의 클라이언트 영역에서 자식 창을 자동으로 클립 하지 않습니다. 즉, 자식 창으로 동일한 위치에 있는 모든 드로잉을 실시 하는 경우 부모 창이 자식 창을 통해 그립니다. 그러나, 시스템 부모 창에 WS_CLIPCHILDREN 스타일 경우 부모 창의 클라이언트 영역에서 자식 창의 클립지 않습니다. 부모 창 위에 그릴 수 없습니다 자식 창이 잘린 경우.

자식 창이 동일한 클라이언트 영역에 있는 다른 자식 창을 겹칠 수 있습니다. 공유 하는 하나 또는 이상의 다른 자식 창으로 동일한 부모 창이 자식 창은 형제 창이라고 합니다. 형제 windows WS_CLIPSIBLINGS 스타일 자식 창 중 하나 하지 않는 다른 사용자의 클라이언트 영역에 그릴 수 있습니다. 자식 창이이 스타일에는, 어떤 부분의 자식 창 안에 있는 형제 창 잘립니다.

한 창에 WS_CLIPCHILDREN 또는 WS_CLIPSIBLINGS 스타일, 성능에 약간의 손실이 발생 합니다. 각 창 응용 프로그램 자식 창을 무차별적으로 사용 하지 않아야 하므로 시스템 리소스를 차지 합니다. 최상의 성능을 위해 논리적으로 메인 윈도우를 분할 해야 하는 응용 프로그램 해야 할 자식 창을 사용 하 여 보다는 오히려 주 창의 창 프로시저에서.

부모 창에 관계

응용 프로그램은 SetParent 함수를 호출 하 여 기존 자식 창의 부모 창을 변경할 수 있습니다. 이 경우 시스템 이전 부모 창의 클라이언트 영역에서 자식 창을 제거 하 고 새 부모 창의 클라이언트 영역을 이동 합니다. SetParent NULL 핸들을 지정 하는 경우 바탕 화면 창이 새 부모 창이 됩니다. 이 경우 자식 창은 다른 창 테두리 밖에 서 바탕 화면에 그려집니다. 자식 창의 부모 창에 대 한 핸들을 검색 하는 GetParent 함수.

부모 창과 자식 창 클라이언트 영역의 해당 부분을 양도 하 고 자식 창을이 지역에서 모든 입력을 받습니다. Window 클래스 각 부모 창의 자식 창에 대해 동일 해야 합니다. 즉, 응용 프로그램 자식 창을 다르게 표시 하 고 다른 작업을 수행 하는 부모 창을 채울 수 있습니다. 예를 들어, 대화 상자 다양 한 각을 한 사용자에서 다른 유형의 데이터를 허용 하는 자식 창 컨트롤을 포함할 수 있습니다.

자식 창이 단 하나의 부모 창 하지만 부모 자식 창의 수는 제한이 없습니다. 각 자식 창을 차례로 자식 창을 가질 수 있습니다. Windows의이 사슬에서 각 자식 창이 원래 부모 창 하위 창을 이라고 합니다. 응용 프로그램 IsChild 함수를 사용 하 여 주어진된 창의 자식 창 또는 부모 주어진된 창의 하위 창이 발견.

EnumChildWindows 함수는 부모 창이 자식 창을 열거합니다. 그런 다음 EnumChildWindows 를 응용 프로그램 정의 콜백 함수에 각 자식 창 핸들을 전달합니다. 지정한 부모 창의 하위 창이 또한 열거.

메시지

시스템 자식 창의 입력된 메시지 전달 직접 자식 창; 부모 창을 통해 메시지 전달 되지 않습니다. 유일한 예외는 자식 창에 있는 경우 비활성화 되었습니다 EnableWindow 함수에 의해. 이 경우 시스템 입력된 메시지를 부모 창의 자식 창으로 대신 갔을 것 이다 전달 합니다. 이렇게 하면 입력된 메시지를 검사 하 고 자식 창을 활성화 하려면 부모 창 필요한 경우.

자식 창의 고유 정수 식별자를 가질 수 있습니다. 자식 창 식별자는 컨트롤 창에서 작업할 때 중요 합니다. 응용 프로그램 전송 하 여 컨트롤의 활동을 지시 메시지. 응용 프로그램 컨트롤의 자식 창 식별자를 사용 하 여 컨트롤에 메시지를 직접. 또한, 컨트롤의 부모 창에 알림 메시지를 보냅니다. 알림 메시지에는 컨트롤의 자식 창 식별자를, 부모 식별 하기 위해 사용 하는 컨트롤을 메시지를 보낸 포함 됩니다. 메뉴 핸들 보다 값 CreateWindowEx 함수의 hMenu 매개 변수를 설정 하 여 다른 유형의 자식 창에 대 한 자식 창 식별자를 지정 하는 응용 프로그램.

 

Index