logo
Литература_1 / photon_old

Несколько щелчков

Нажимаете ли Вы или отпускаете кнопку мыши, событие включает в себя счётчик щелчков. Как Ваше приложение определяет, что Вы щёлкнули, а не выполнили двойной щелчок?

В данных по событию имеется счётчик щелчков, связанный с событиями Ph_EV_BUT_PRESS и Ph_EV_BUT_RELEASE; чтобы получить эти данные, вызовите функцию PhGetData(). Данными для этих событий являются структуры типа PhPointerEvent_t (см. подробнее в "Справочнике библиотечных функций Photon'а"); её член click_count даёт количество Ваших щелчков кнопкой мыши.

Если Вы продолжаете щёлкать достаточно быстро, не двигая мышь, счётчик продолжает возрастать. Если Вы перемещаете мышь или на время прекращаете щёлкать мышью, счётчик сбрасывается и Photon генерирует событие

Ph_EV_BUT_RELEASE с подтипом Ph_EV_RELEASE_ENDCLICK.

Иными словами, первый щелчок генерирует событие Ph_EV_BUT_PRESS и пару событий Ph_EV_BUT_RELEASE (одно реальное REAL и одно фантомное PHANTOM) со счётчиком click_count, установленным в 1. Затем, в зависимости от того, щёлкнул ли пользователь достаточно быстро вновь или нет, Вы получите либо

либо

После второго щелчка Вы либо получаете третий, либо ENDCLICK, и так далее. Но в конечном счёте Вы получаете ENDCLICK – и в следующий раз, когда пользователь щёлкнет, счётчик щелчков вновь равен 1.

          1. Yandex.RTB R-A-252273-3
            Yandex.RTB R-A-252273-4