Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2012.01.01;
Скачать: CL | DM;

Вниз

CM_MOUSEENTER   Найти похожие ветки 

 
Litt   (2011-09-23 18:42) [0]

Здравствуйте.
У меня возникла проблема в следующем:
Навожу на котрол курсор, зажимаю ЛКМ. Перевожу на другой и отпускаю. При этом второй контрол не получает CM_MOUSEENTER и соответственно CM_MOUSELEAVE.
Как ее решить?

Пытался в WMLButtonUp добавить эту строку:Parent.Perform(CM_MOUSEENTER, 0, 0);после чего стало обрабатываться CM_MOUSELEAVE, но ENTER так и не было.


 
Rouse_ ©   (2011-09-23 18:48) [1]

Второй контрол, это тот на который ты перевел мыш или тот на котором отпустил кнопку?


 
Dimka Maslov ©   (2011-09-23 19:51) [2]

При нажатии на кнопку над контролом он получает ВСЕ события от мыши до тех пор, пока кнопка не будет отпущена. Так работает выньда.


 
Puw   (2011-09-23 20:25) [3]

Rouse_, зажал на первом, отпустил на втором.

Я так понял, что все эти CM_MOUSEENTER контролирует окно, но не понял в каких случаях оно отправляется.
Наверное, нужна функция, которая получает контрол из под мышки во время ее движения, но где она?


 
Dimka Maslov ©   (2011-09-23 20:37) [4]

СМ_MOUSEENTER отправляется контролу когда на него находит курсор, но не через очередь сообщений, а через метод Perform, ибо это внутренее сообщение VCL.

А функция, которая получает контрол по координатам называется TWinControl.ControlAtPos


 
Puw   (2011-09-23 21:56) [5]

Упростил TWinControl.ControlAtPos до поиска только по своему типу, отсылаю ему CM_MOUSEENTER и все работает.

Всем спасибо.



Страницы: 1 вся ветка

Текущий архив: 2012.01.01;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.008 c
4-1253602770
Brick
2009-09-22 10:59
2012.01.01
Сетевой каталог и сервис


2-1317060923
oleg_teacher
2011-09-26 22:15
2012.01.01
Перевод png в jpg.


15-1312403395
Юрий
2011-08-04 00:29
2012.01.01
С днем рождения ! 4 августа 2011 четверг


15-1316151747
stdin
2011-09-16 09:42
2012.01.01
Firebird data comparer


2-1316719186
dreamse
2011-09-22 23:19
2012.01.01
Сохранение списка без символов перевода каретки