|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Ноя 12, 2003 15:19:24 Как отследить момент, когда курсор покидает область окна? Посылаются ли окну какие-либо сообщения? |
|
|
Дата: Ноя 12, 2003 15:45:14 Xen0 Для этого нужно воспользоваться функцией TrackMouseEvent Далее смотри MSDN |
|
|
Дата: Ноя 12, 2003 19:17:31 для некотоых применений наверное можно просто отслеживать MOUSEMOVE и считать, что мышь покинула пределы окна, когда она стоит на одну точку до покидания, т.е. на самой крайней точке окна. Интересно, если быстро двинуть мышью, успеет сработать MOUSEMOVE для каждой точки? |
|
|
Дата: Ноя 12, 2003 22:00:18 Не успеет - уже проверял... |
|
|
Дата: Ноя 13, 2003 06:35:01 AsmGuru62 Я слежу за позицией курсора мышки из thread'а - успевает. |
|
|
Дата: Ноя 13, 2003 21:57:12 Xen0 Можно ещё SetCapture попробовать, чтоб ловить не только на последнем пикселе :-) q_q А как это? Через хук? |
|
|
Дата: Ноя 14, 2003 05:09:40 Quantum В thread'е почти бесконечный цикл в нем GetCursorPos + анализ на попадание в пределы окна + анализ на не попадание в пределы детей + в зависимости от результата PostMessage с hover или leave + Sleep(100). |
|
|
Дата: Ноя 14, 2003 18:01:27 Господа, может я чего не понимаю. Но чем не нравится обработка WM_NCMOUSEMOVE? |
|
|
Дата: Ноя 14, 2003 18:35:36 sd2000 Тоже вариант, но NC имеется не у всех окон. q_q Ясно. Спасибо за пояснение. |
|
|
Дата: Ноя 15, 2003 01:21:53 Чегото WM_NCMOUSEMOVE у меня не успевает иногда сработать, если очень быстро мышкой провести по окну.. хотя странно почему.. |
|
|
Дата: Ноя 15, 2003 02:13:21 prog Есть одна идея относительно этого. Возможно, что связь мышь<->драйвер_мыши<->приложение не успевает срабатывать и, в следующих друг за другом 2 сообщениях о перемещении, происходит передача местоположения до окна и уже после него. Но это только лишь мысли в слух. В данном случае - мысли в текст :) |
|
|
Дата: Ноя 15, 2003 06:22:43 Sk. Inc. Скорее всего винда сама фильтрует старые сообщения, из соображений рационализации, ведь зачем передавать координаты того места где мышь была, если её там уже давно нет?! |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.067 |