Учитывая x, y точку, как получить дескриптор окна для элемента управления, которого нет в окне переднего плана? - PullRequest
3 голосов
/ 24 февраля 2011

Я знаю, что WindowFromPoint можно использовать для получения дескриптора элемента управления, если этот элемент управления находится в видимом окне. Мое требование - получить детали управления, даже если окно приложения не находится на переднем плане (оно не свернуто, просто оно может находиться за другим окном). Доступна ли функция WINAPI, которая может сделать это для меня?

Если нет, может кто-нибудь предложить подход к тому, как я могу это сделать, не достигнув: 1. Перечисление всех элементов управления в конкретном фоновом окне, 2. затем получить свои границы, 3. и затем сравнение, если эти границы содержат координаты x, y?

Ответы [ 2 ]

2 голосов
/ 24 февраля 2011

Вы ищете API-функцию GetWindow , которую можно использовать для перечисления всех окон, а затем функцию GetWindowRect .

0 голосов
/ 24 февраля 2011

Может быть WM_NCHITTEST может помочь? См., Например, WM_NCHITTEST для проверки попадания, а проверка попадания может выполняться по причинам, отличным от того, что мышь находится над окном над «Старым новым».

Сообщение WM_NC­HIT­TEST не означает, что мышь находится в вашем окне; это просто означает, что кто-то спрашивает: «Если бы мышь была в вашем окне, что бы она делала?»

...