2010-05-19 4 views
3

그래서 MFC 프로그램에 대한 플러그인이 있습니다. 클릭 이벤트를 캡처하는 마우스 이벤트 훅 (SetWindowsHookEx에서)을 사용하고 있습니다. 호스트 응용 프로그램은 임의의 수의 (겹칠 수있는) 하위 창을 열어 둘 수 있지만 특정 하위 창에서만 클릭을 차단하려고합니다.마우스 클릭을받을 MFC 하위 창 찾기

하위 창 중 어느 것이 클릭을 처리 할 것인가를 후크 proc에서 파악할 수있는 방법이 있습니까? 나는 모든 자식 창을 열거하고 Z 순서를 보았을 것으로 생각하지만 MFC/Win32 라이브러리에는 익숙하지 않다. 모든 자식을 열거하고 계산하는 방법에 대한 좋은 토론을 찾을 수 없다. 최고의.

답변

3

아마도 WindowFromPoint API 함수가 청구서에 부합합니까?

지정된 지점을 포함하는 창에 대한 핸들을 검색합니다.

설명서에 명시 적으로 Z 순서가 언급되어 있지는 않지만 "포함"한다는 의미는 직접적으로 다른 창 앞에 있다는 것을 의미합니다.

약간 더 다른 동작이 있습니다 : ChildWindowFromPoint, ChildWindowFromPointExRealChildWindowFromPoint.

+0

감사합니다. GetCursorPos API를 사용하여 좋은 정보를 얻었습니다. http://www.codeproject.com/KB/dialog/windowfinder.aspx – tfinniga

0

MFC를 한 지 오래되었지만 HitTest가 찾고있는 용어라고 생각합니다. MSDN을 통한 빠른 트롤은 대부분의 윈도우가 특정 포인트에 대한 정보를 반환하는 HitTest 함수를 구현한다는 것을 나타냅니다.