Главная страница
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.048 c
4-1135609267
sand
2005-12-26 18:01
2006.03.19
Рисунок на кнопке


6-1132550273
vitek
2005-11-21 08:17
2006.03.19
Как перехватить сообщение по сети


15-1140873496
Музыкант
2006-02-25 16:18
2006.03.19
Кто знает где можно скачать похоронный марш?


3-1138185122
raferty
2006-01-25 13:32
2006.03.19
Русский язык и MySQL 5.0.18


2-1141062875
Sotlef
2006-02-27 20:54
2006.03.19
Method pointer в Object Pascal