![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| devmstr |
|
|||
![]() Developer ![]() ![]() Профиль Группа: Участник Сообщений: 879 Регистрация: 28.4.2004 Где: Ukraine Репутация: нет Всего: 11 |
Почему не отлавливаются эти сообщения?
-------------------- Think different ©Steve Jobs ![]() |
|||
|
||||
| devmstr |
|
|||
![]() Developer ![]() ![]() Профиль Группа: Участник Сообщений: 879 Регистрация: 28.4.2004 Где: Ukraine Репутация: нет Всего: 11 |
C WM_MOUSEMOVE вообщем разобрался. Я его словить не могу , так как присутствует код
Выход ловить WM_NCMOUSEMOVE. А вот что в этом случае делать со вторым пока не понятно. -------------------- Think different ©Steve Jobs ![]() |
|||
|
||||
| devmstr |
|
|||
![]() Developer ![]() ![]() Профиль Группа: Участник Сообщений: 879 Регистрация: 28.4.2004 Где: Ukraine Репутация: нет Всего: 11 |
Пробовал WM_NCMOUSEMOVE. Как ни ловилось так и не ловится!
Или я где то затупил? -------------------- Think different ©Steve Jobs ![]() |
|||
|
||||
| Earnest |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 33 Всего: 183 |
Что-то я у тебя никаких TrackMouseEvent не заметила. Еще код
выглядит, гм..., странно. Зачем тут break?
Если все, что тебя волнует, это узнать, что мышь над окном, когда capture установлено, - проверяй координаты мыши, и делай это хоть в WM_NCHETTEST, хоть таймер повесь. Объясни, что нужно-то? Ты уж извини, но действия какие-то проктологические. -------------------- ... |
||||||
|
|||||||
| devmstr |
|
||||
![]() Developer ![]() ![]() Профиль Группа: Участник Сообщений: 879 Регистрация: 28.4.2004 Где: Ukraine Репутация: нет Всего: 11 |
Ну бывает, не обратил внимания, хотя смысла это не меняет. Вообщем код в конце концов заработал. Возникла несколько иная проблема. TrackMouseEvent когда вызывать? Делал это по WM_MOUSEMOVE, но WM_MOUSELEAVE почему то не вызывается. А если вызывать TrackMouseEvent по клику мыши. То все прекрастно работает. Но надо все же делать по WM_MOUSEMOVE. Как можно решить данную проблему?
Это сообщение отредактировал(а) magician - 26.10.2005, 08:45 -------------------- Think different ©Steve Jobs ![]() |
||||
|
|||||
| rsm |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 999 Регистрация: 16.3.2005 Репутация: 4 Всего: 62 |
||||
|
||||
| devmstr |
|
|||
![]() Developer ![]() ![]() Профиль Группа: Участник Сообщений: 879 Регистрация: 28.4.2004 Где: Ukraine Репутация: нет Всего: 11 |
Большое спасибо! Вы мне очень помогли!
-------------------- Think different ©Steve Jobs ![]() |
|||
|
||||
| GremlinProg |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
Вообще-то, TrackMouseEvent решает только часть проблемы: попробуй резко провести мышью над областью, за которой ты следишь. WM_MOUSELEAVE будет работать через раз. Это следствие того, что сообщение WM_NCHITTEST приходит в окно только тогда, когда мышь находится над этим окном. Для того, чтобы полностью контролировать вклад мыши необходимо повесить на Idle дополнительную проверку. Дальше мне лень писать, но принцип прост: вместо GetMessage нужно вызывать PeekMessage. Если она возвращает FALSE, значит нет сообщений в очереди, т.е. пришло время Idle Здесь-то как раз и надо проверить текущие координаты мыши.
-------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
| devmstr |
|
|||
![]() Developer ![]() ![]() Профиль Группа: Участник Сообщений: 879 Регистрация: 28.4.2004 Где: Ukraine Репутация: нет Всего: 11 |
GremlinProg
Мда, Вы правы, сейчас попробую! -------------------- Think different ©Steve Jobs ![]() |
|||
|
||||
![]()
|
| Правила форума "C/C++: Системное программирование и WinAPI" | |
|
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |