· Начало · Статистика · WASM.RU · Noir.Ru ·

 WASM Phorum (Оффлайн - 24.11.2003) —› WASM.WIN32 —› Сообщения

Посл.отвђт Сообщен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