2011-05-08 2 views
3

WindowFromPoint winapi 함수를 사용할 때 우리는 대개 포인트가 윈도우 내의 일부 컨트롤을 지정할 때 대소 문자를 구할 수 있습니다. 그런 경우 WindowFromPoint은 해당 컨트롤을 처리하는 창이 아니라 해당 컨트롤에 대한 핸들을 반환합니다.포인트에서 실제 hwnd

예를 들어 내 작은 테스트 응용 프로그램에서 크롬 브라우저의 "본문"을 가리키는 경우 클래스 = Chrome_RenderWidgetHostHWND 및 해당 hwnd를 사용하여 컨트롤을 얻습니다.

하지만 내가 필요한 것은 그 컨트롤 (분명히 크롬 창이어야 함)에 대한 "부모"창을 얻는 것입니다.

+2

'포인터'는 '처리'를 의미합니다. –

+0

@ Andreas Rejbrand : 예, 창 핸들. 고침, 고마워. – zerkms

답변

4

GetAncestor()을 사용하여 부모를 탐색하려면 GA_PARENT을 전달하십시오. 이 호출이 GetParent()과 다른 점은 창이 최상위 창인 경우 소유자를 반환합니다.

+0

그래,하지만'GA_ROOT'가 내 기대에 더 잘 맞는 것 같지 않니? – zerkms

+0

@zerkms 아마도'GA_ROOT'가 더 좋을 수도 있습니다. 정확히 어떤 창을 찾고 있는지 잘 모르겠습니다. 너는 그것을 너만 알지! ;-) –

+0

모든 컨트롤의 상단 컨테이너이며 제목이 있고 최소화/최대화/닫기 버튼이있는 일반 컨테이너입니다. – zerkms

1

그냥 GetParent을 사용할 수 없습니까? 데스크톱 창을 찾을 때까지 탐색을 계속하십시오.

+0

감사합니다. 대답은 +1입니다. – zerkms