Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.03.19;
Скачать: CL | DM;

Вниз

как получить хэндл окна, находящегося под курсором мыши?   Найти похожие ветки 

 
lucifer ©   (2005-12-01 17:15) [0]

Собственно сабж!


 
Игорь Шевченко ©   (2005-12-01 17:37) [1]

GetCursorPos + WindowFromPoint


 
ANB ©   (2005-12-01 17:42) [2]


> lucifer ©   (01.12.05 17:15)

Или использовать другой хук, который присылает хендл окна.


 
Lucifer ©   (2005-12-02 11:58) [3]

>GetCursorPos + WindowFromPoint
не больно хорошо работает! т.к. при  выполнении функции WindowFromPoint возвращается значение хэндла не самого окна,а к примеру если навести не на само окно, а его компонент - то хэндл компонента!

>Или использовать другой хук, который присылает хендл окна.

А можно по подробнее!

Всем огромное спасибо!


 
Lamer@fools.ua ©   (2005-12-02 12:11) [4]

>>Lucifer ©   (02.12.05 11:58) [3]

>не больно хорошо работает! т.к. при  выполнении функции WindowFromPoint возвращается значение хэндла не самого окна,а к примеру если навести не на само окно, а его компонент - то хэндл компонента!
Работает как раз прекрасно.  Но если нужно именно окно в понятиях пользователя, то GetParent() или GetAncestor(), вероятно, спасёт отца русской демократии.


 
Lucifer ©   (2005-12-02 12:20) [5]

>то GetParent() или GetAncestor(),

хорошо, спасибо, с первым я примерно разобрался, но со вторым параметром второго не совсем? Можно по подробнее?


 
lucifer ©   (2005-12-02 12:25) [6]

вся проблема в том, что мне надо закрыть окно которое находиться под урсором мыши в момент нажатия определённой кнопки мыши? как закрывать окно зная его хэндл я научился, а вот как получать сам хэндл самого окна, а не его составляющего пока нет!

Заранее благодарен в любой помощи!


 
ANB ©   (2005-12-02 12:31) [7]


> lucifer ©   (02.12.05 12:25) [6]

WH_GETMESSAGE
Но тоже получишь хендл контролла.
Вот этот код достанет тебе хендл окна :

hMainWnd := hCallWnd;
while (
    ((GetWindowLong(hMainWnd, GWL_STYLE) and WS_CHILD) <> 0)
and ((GetWindowLong(hMainWnd, GWL_EXSTYLE) and WS_EX_MDICHILD) = 0)
) do hMainWnd := GetParent(hMainWnd);


 
ANB ©   (2005-12-02 12:32) [8]


> lucifer ©   (02.12.05 12:25) [6]

Не забудь отфильтровать только мышиные события, а то повесишь комп (Ctrl+Alt+Del + перелогинится - помогает)


 
Lucifer ©   (2005-12-29 20:04) [9]

>Не забудь отфильтровать только мышиные события, а то повесишь комп (Ctrl+Alt+Del + перелогинится - помогает)
Я не поял к чему, но за код огромное спасибо!! Работает точно так, как надо, а то я уже начал думать, что придёться отказаться от этого проекта.
Ещё раз огромное спасибо за помощь, очень признатален!



Страницы: 1 вся ветка

Текущий архив: 2006.03.19;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.04 c
2-1141154113
opopo
2006-02-28 22:15
2006.03.19
Get Var By Name, получение переменной по имени.


5-1126328242
Дельфин
2005-09-10 08:57
2006.03.19
Создание компонентов в Delphi 6 (полный перевод)


2-1141158956
Foton
2006-02-28 23:35
2006.03.19
Почему не виден ресурс


15-1140539510
Kerk
2006-02-21 19:31
2006.03.19
Купил наушники наконец


1-1139251826
Kolan
2006-02-06 21:50
2006.03.19
Как усыпить поток.