|
Как отловить момент выхода курсора мыши за переделы ДВ?
|
|||
---|---|---|---|
#18+
Сабж собственно ... Когда использую CaptureMouse(), ReleaseMouse() ДВ начинает вести себя как то странно. На пример: перестают работать стандартные события GetFocus/LoseFocus, нельзя отобразить Messagebox(...), ... Если не использовать CaptureMouse(), ReleaseMouse(), то все работает нормально, но выход мыши отловить не могу. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2008, 12:34 |
|
Как отловить момент выхода курсора мыши за переделы ДВ?
|
|||
---|---|---|---|
#18+
как отловить момент выхода ? - самое простое с помощью события маусмув обьекта, на котором лежит дв, или - с помощью SetCapture/ReleaseCapture, если пишем самостоятельный обьект, но как вы заметили уже, появляется ряд артефактов в поведении, каждый из которых придется отловить. на вскидку - - делать ReleaseCapture на xpos/ypos > width/height < 0 (лучше пользовать GetClientRect датавиндова - минус артефакт поведения на скроллбарах дв и, возможно, заголовка (Именно тут можно сгенерить МоусЛеаве)), перед скриптом, потенциально показывающим МессаджБоксы/Другие окна... ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2008, 13:07 |
|
Как отловить момент выхода курсора мыши за переделы ДВ?
|
|||
---|---|---|---|
#18+
в mousemove включить таймер и по событию таймера определять значение GetObjectAtPointer() если пусто или null то мыша ушла за пределы, таймер можно выключать. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2008, 22:39 |
|
Как отловить момент выхода курсора мыши за переделы ДВ?
|
|||
---|---|---|---|
#18+
2 rcryo Я тоже думал про такое, но мне это не очень нравится - задержка между запросами таймера. Хотелось бы более красивое решение ... ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2008, 13:17 |
|
Как отловить момент выхода курсора мыши за переделы ДВ?
|
|||
---|---|---|---|
#18+
В dw событии other: if message.number = 675 then //out of dw end if ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2008, 16:50 |
|
Как отловить момент выхода курсора мыши за переделы ДВ?
|
|||
---|---|---|---|
#18+
Не будет оно работать. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2008, 17:50 |
|
Как отловить момент выхода курсора мыши за переделы ДВ?
|
|||
---|---|---|---|
#18+
авторзадержка между запросами таймера. сделайте 100-200мс на глаз заметно не будет У меня по этому принципу сервис hyperlink сделан и не заметно никакой задержки ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2008, 19:07 |
|
Как отловить момент выхода курсора мыши за переделы ДВ?
|
|||
---|---|---|---|
#18+
Ерунда это всёю Нужно использовать следующую API: Код: plaintext
Прикладываю static text, работающий по этому принципу (проверял и на ДВ) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2008, 18:59 |
|
Как отловить момент выхода курсора мыши за переделы ДВ?
|
|||
---|---|---|---|
#18+
Филипп, преогромнейшее спасибо от лица всех страждущих! :) Хотя мне кажется, что этот метод где то перекликается с предложением rcryo - по принципу работы. У тебя реализовано ср-вами WinAPI, а там ПБ. Тоже своего рода опрос по таймеру, но может быть я и ошибаюсь. Еще раз - спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2008, 11:39 |
|
Как отловить момент выхода курсора мыши за переделы ДВ?
|
|||
---|---|---|---|
#18+
Филипп, Вы на свете всех милее, всех румяней и белее. Однако вот это: Код: plaintext 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2008, 19:50 |
|
Как отловить момент выхода курсора мыши за переделы ДВ?
|
|||
---|---|---|---|
#18+
rcryoФилипп, Вы на свете всех милее, всех румяней и белее. Однако вот это: Код: plaintext 1. 2. 3. 4. 5. 6.
Абсолютная чепуха... ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2008, 23:58 |
|
|
start [/forum/topic.php?fid=15&msg=35674998&tid=1336458]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
92ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 202ms |
0 / 0 |