|
|
|
Как отловить момент выхода курсора мыши за переделы ДВ?
|
|||
|---|---|---|---|
|
#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=35672598&tid=1336458]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
47ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
| others: | 232ms |
| total: | 384ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...