Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2006.03.19;
Скачать: [xml.tar.bz2];

Вниз

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

 
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 вся ветка

Форум: "WinAPI";
Текущий архив: 2006.03.19;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.011 c
15-1140714198
Здешний
2006-02-23 20:03
2006.03.19
Объясните задачу по физике.


2-1141216756
Хрюша
2006-03-01 15:39
2006.03.19
Почему пропадает модальное окно?


15-1141053889
Kerk
2006-02-27 18:24
2006.03.19
[usability] Печать &amp; пред.просмотр


1-1139611982
LordOfRock
2006-02-11 01:53
2006.03.19
Как сделать файл с самыми разными данными?


11-1121939979
shalex
2005-07-21 13:59
2006.03.19
MHXPStyle





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский