![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| RAN |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 709 Регистрация: 14.3.2003 Где: Щёлково Моск.обл. Репутация: 5 Всего: 6 |
Вот столкнулся с такой проблемой. У меня обрабатывается сообщение WM_MOUSEMOVE и подсвечивается кое-что в окне. Так вот надо бы, чтоб когда мышь уходит с объекта, подсветка исчезала. Так оно и происходит, но если мышь с объекта уходит сразу за пределы окна, то сообщение WM_MOUSEMOVE уже не поступает.
Что посоветуете? В инете нашёл пару способов: Как узнать, что мышь вышла за пределы окна? Как отследить события MouseOver, MouseOut Пока склоняюсь к использованию TrackMouseEvent. |
|||
|
||||
| RAN |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 709 Регистрация: 14.3.2003 Где: Щёлково Моск.обл. Репутация: 5 Всего: 6 |
Да, использовать функцию TrackMouseEvent просто и эффективно. Но всё равно пишите какие способы использовали вы.
|
|||
|
||||
| TaTaP |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 86 Регистрация: 15.10.2002 Репутация: 1 Всего: 1 |
Наверху есть примеры, там Baa сделал хук на мышь, тоже отлавливает все поползновения в стороны...
|
|||
|
||||
| RAN |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 709 Регистрация: 14.3.2003 Где: Щёлково Моск.обл. Репутация: 5 Всего: 6 |
Hook - это не то. После того как тема об hook была поднята Baa, наблюдается по-моему нездоровая тенденция использовать его везде и всегда.
P.S. Я поискал на форуме топики на эту тему и ничего не нашёл. |
|||
|
||||
| DENNN |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3878 Регистрация: 27.3.2002 Где: Москва Репутация: 1 Всего: 43 |
Обработай еще событие OnMouseOut от самого окна и погаси все надписи
|
|||
|
||||
| Baa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2639 Регистрация: 12.4.2002 Где: Москва Репутация: 8 Всего: 12 |
Я тоже считаю TrackMouseEvent оптимальным вариантом.
з.ы. народ, я понимаю, что хуки - это прикольно, но не стоит их юзать при каждом возможном случае -------------------- "Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande |
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 25 Всего: 232 |
Есть один способ для тех кто не хочет TrackMouseEvent (без хуков) -- делаем поток, посылающий через N миллисекунд наше WM_ сообщение (созданное с пом. RegisterWindowMessage) всем окнам приложения, с текущими координатами мыши в LPARAM. Все что нужно сделать -- это обработать данное сообщение в том окне, где нужна проверка мыши на выход (обработка заключается в собственно проверке координат и перерисовке, если мышь вышла).
Данный способ по реализации очень похож на TrackMouseEvent, только можно настраивать частоту проверки, да и поток можно заморозить когда нужно. -------------------- ![]() |
|||
|
||||
| RAN |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 709 Регистрация: 14.3.2003 Где: Щёлково Моск.обл. Репутация: 5 Всего: 6 |
DENNN, я так понял, что это MFC. Разве есть в API WM_MOUSEOUT? То есть с таким именем точно нет в winuser.h ничего. Я подозреваю, что в MFC OnMouseOut через TrackMouseEvent и реализовано. |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |