Реальный hwnd от точки - PullRequest
3 голосов
/ 08 мая 2011

Когда мы используем WindowFromPoint функцию winapi, мы обычно можем получить случай, когда Point указывает какой-то элемент управления в окне. И в таких случаях WindowFromPoint возвращает дескриптор этого элемента управления, а не окно, которое обрабатывает этот элемент управления.

Например, в моем небольшом тестовом приложении, если я указываю на «тело» браузера Chrome, я получаю элемент управления с class = Chrome_RenderWidgetHostHWND и его hwnd.

Но мне нужно получить «родительское» окно для этого элемента управления (которое, очевидно, должно быть окном Chrome).

Ответы [ 2 ]

4 голосов
/ 08 мая 2011

Пройдите через родителей, используя GetAncestor(), передавая GA_PARENT.Это отличается от вызова GetParent(), который вернет владельца, если окно является окном верхнего уровня.

1 голос
/ 08 мая 2011

Разве вы не можете просто использовать GetParent ?Продолжайте движение, пока не найдете окно рабочего стола.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...