Hello All, Реально ли отследить в своей программе перекрытие какого либо контрола другим окном? Подскажите идею, плиз.. PS. Естественно речь идет не о WS_VISIBLE PPS. Сорри, если вопрос уже обсуждался, но поиск не дал результата...
Прога мониторит клипбоард. Если ей есть что показать она забирает фокус (вернее пытается забрать), и выводит данные. При этом если окно проги не в фокусе и скрыто другими окнами - флэш в таскбаре понятен и приветствуется. Однако нафига забирать фокус и мигать в таскбаре если допустим окно программы и так видно?! (Этим кстати говоря страдает переводчик клипборда PromtX) Поэтому надо как то отслеживать ситуацию когда контрол (или всё окно) виден на экране.
Не думаю. Если окно другой программы будет совпадать по x, y но при этом находится наже моего окна по z (т.е. будет видимым)
Не совсем понял. Получаем координаты нужного контрола относительно всего экрана. Вызывает WindowFromPoint, для нескольких точек, в которых по идее должет располагаться контрол. Сравниваем полученый дескриптор с дескриптором окна контрола. Если во всех точках дескрипторы совпадают, значит контрол не перекрыт (точность этого вывода прямо пропорцианальна количеству проверяемых точек), если нет - "вытаскиваем" окно с контролом на верх. Или я совсем не понял? Вот пример использования WindowFromPoint. Может пригодится... _940400091__wndinfo.zip
WindowFromPoint возвращает хэндл самого верхнего (т.е. видимого) окна? Тогда идея понятна и должна работать. Сейчас попробую... Правда здесь есть один нюанс: если вдруг расположение контрола совпадет с "hidden or disabled window" надо будет юзать ChildWindowFromPoint, но это уже детали.