| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: WinAPI и системное программирование > Узнать хэндл окна по хэндлу его компонента. |
| Автор: Firster 29.11.2007, 02:01 |
| Такая делема...Установлен глобальный МЫШИНЫЙ хук. При клике мышкой, например, на окне любого приложения МОЕЙ программе передается сообщение от ДЛЛ, мол произведен КЛИК. Далее МОЯ программа получает координаты мыши и через функцию WindowFromPoint получаю хэндл... Вот здесь и есть ВОПРОС. Если клик произошел на заголовке окна, тогда WindowFromPoint возвращает ХЭНДЛ ОКНА, но если клик произведен в другой области окна, тогда WindowFromPoint возвращает хэндл этого компонента. Как получить по хэндлу компонента ХЕНДЛ ОКНА? Может кто -нить сталкивался, помогите пожалуйста. П.С. Функцию SetForegroundWindow, а потом GetActiveWindow не предлагать. Уже опробовано. Не работает... |
| Автор: dumb 29.11.2007, 09:41 |
| теперь опробуй GetParent |
| Автор: Firster 29.11.2007, 12:21 |
| dumb, дает НОЛЬ |
| Автор: MetalFan 29.11.2007, 12:50 | ||
| упс) значит это окно у тебя верхнего уровня ну и в догонку:
|
| Автор: Firster 30.11.2007, 00:31 |
| вот исходник даю....Ничего не выходит......... |
| Автор: Firster 30.11.2007, 00:48 |
| MetalFan, СПАСИБО, ПРОСТО ОГРОМНОЕ СПАСИБО. Использовал GetAncestor (hWnd, x) где x = GA_ROOT |