항상 부모 클라이언트 영역을 채우며 항상 크기와 위치가 동일한 하위 창을 만들려고합니다. 나의 유혹은 부모에게 GetWindowLongPtr
으로 전화하고, 그 창 proc을 걸고, WM_SIZE
과 WM_MOVE
메시지를 가로 채고, 그 메시지에 응답하여 내 아이의 크기를 조정/옮기는 것이다.부모와 함께 자동으로 크기를 조정하는 창을 만드는 방법
그러나 내가 연구하고있는 프로젝트는 WTL로 작성되었으며,이 무거운 메시지를 가로채는 것보다 더 우아하고 정통한 WTL 솔루션이 있다고 생각하고 싶다. 나는 WTL에 익숙하지 않고 문서는 기껏해야 희소식이다. 나는 CHAIN_MSG_MAP_MEMBER
를 사용하여 고려 중이 야하지만 WM_SIZE
내 핸들러가 나는만큼 비 침입으로 부모 클래스의 변경을하고 싶습니다
부모의 메시지 나 아이의 자신의 WM_SIZE
메시지를 처리 될 때를 결정하는 방법을 확실 해요 가능하다면 ... 아마 부모의 메시지 맵에있는 한 줄. 부모는 최상위 창뿐만 아니라 모든 창이 될 수 있습니다.
보통 부모는 자신의 'WM_SIZE' 메시지에 응답하고 자식의 크기를 조정합니다. – user1793036
이 경우 나는 표면 상으로는 입력을 차단하고 메시지를 맨 위에 렌더링하는 다른 윈도우의 자식 위에 배치 할 수있는 일반 컨트롤을 만들려고합니다. – cppguy
@cppguy : 자식 창을 다른 자식 창 위에 놓으면 (Z- 순서 의미로) 기본 창에 대한 키보드 입력을 마우스 클릭 만 차단하지 않습니다. 다른 자식이 비활성화되었는지, 메시지 루프가 특수 메시지를 자식에게 전달하지 않는지 확인해야합니다 (예 : 단축키를 통해). 그리고 커버 윈도우가 활성화 된 후에 부모가 새로운 컨트롤을 생성한다면 어떻게 될까요? –