Главная страница
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.047 c
15-1140872613
SergP.
2006-02-25 16:03
2006.03.19
Как правильно пишется?


3-1138282885
Stanislav
2006-01-26 16:41
2006.03.19
Передать серверу Application Name


15-1140547040
DillerXX
2006-02-21 21:37
2006.03.19
Variants без Types и SysUtils


2-1141332892
Golik
2006-03-02 23:54
2006.03.19
Изображение из таблицы ?


15-1140999217
Бугага
2006-02-27 03:13
2006.03.19
JavaScript