Выбор правильного подхода к Windows Touch
В этом разделе описаны различные подходы к Windows Touch, которые можно использовать.
Вы можете улучшить приложения с помощью функций Windows Touch различными способами. Прежде чем принять метод, необходимо рассмотреть, что нужно сделать с приложением. Следующие сценарии типичны для Windows Touch:
- Вы хотите, чтобы приложение работало так же, как в устаревших версиях Windows, но хотите, чтобы сообщения Windows Touch работали согласованно.
- Вам нужна поддержка поворота пользовательского объекта, преобразования, сдвига или увеличения масштаба в приложении.
- Вы хотите, чтобы приложение могло точно интерпретировать жесты Windows Touch или интерпретировать несколько касаний приложения, оптимизированного специально для ввода Windows Touch.
- У вас есть приложение, которое использует объект RealTimeStylus и хотите улучшить его с помощью возможностей Windows Touch.
Вы хотите, чтобы ваше приложение работало так же, как и в устаревших версиях Windows
В Windows 7 приложения по умолчанию создают сообщения, которые обеспечивают функциональные возможности Windows Touch. Например, жесты сдвига активируют WM_*SCROLL-сообщения. Помимо поддержки сдвига, обработчик WM_GESTURE по умолчанию в Windows 7 поддерживает обратную связь границ, масштаб и нажатие. Обратная связь границ также включена через поддержку прежних версий. Дополнительные сведения о сопоставлении жестов с сообщениями см. в обзоре жестов Windows Touch. Разработчикам, которым нужна только эта базовая функциональность, не требуется напрямую работать с API Windows Touch.
Примечание.
Пользовательские обработчики полос прокрутки должны поддерживать запрос SM_THUМБ POSITION для сообщений WM_VSCROLL и должен поддерживать запрос SB_LINELEFT и SB_LINERIGHT запрос на WM_HSCROLL сообщения.
- В разделе "Поддержка сдвига устаревших версий с помощью полос прокрутки" объясняется, как обеспечить поведение приложения в качестве пользователей в Windows 7.
Требуется поддержка поворота пользовательских объектов, перевода, сдвига или масштабирования
Если требуется ограниченная поддержка сенсорного ввода, но поведение по умолчанию, которое предлагает Windows 7, недостаточно для приложения, можно использовать жесты для улучшения приложения. С помощью жестов можно интерпретировать команды жестов, обрабатывая сообщение WM_GESTURE . Дополнительные сведения о жестах см. в разделе "Жесты Windows Touch". Если приложению нужна поддержка только поворотов с высокой степенью детализации, улучшенная поддержка масштабирования или сдвига с одним пальцем, жесты лучше всего подходить для разработки Windows Touch. Помимо интерпретации сообщения жеста, можно выбрать поддержку обратной связи границ. Дополнительные сведения о обратной связи о границах см. в разделе "Отзывы о границах" справочника по программированию Windows Touch. В Windows 7 командная строка и Интернет Обозреватель воспользоваться преимуществами обратной связи и жестов границ.
- В разделе "Улучшение процесса сдвига одного пальца" объясняется, как настроить процесс сдвига путем обработки сообщения WM_GESTURE .
Вы хотите точное интерпретацию жестов или настраиваемую обработку нескольких точек касания
Если вы хотите иметь еще более конкретный контроль над жестами, чем предлагается сообщением WM_GESTURE , или вы хотите интерпретировать несколько жестов на нескольких объектах, следует использовать обработчик манипуляций. Обработчик манипуляций, по сути, является супермножеством жестов. Для использования обработчика манипуляций требуется реализовать приемник событий для манипуляций, которыми вы передаете необработанные сенсорные данные.
Если требуется простая физика объектов в дополнение к интерпретации жестов, следует использовать обработчик инерции в сочетании с обработчиком манипуляций. Обработчик инерции работает с обработчиком манипуляций, принимая значения скорости от обработчика манипуляций при завершении манипуляции.
Если вы хотите интерпретировать несколько точек касания в приложении, необходимо создать обработчик сообщений для сообщения WM_TOUCH.
- В разделе windows Touch Input объясняется, как интерпретировать сообщение WM_TOUCH .
- В разделе "Обнаружение и отслеживание нескольких точек касания" показано, как создать простое приложение, которое интерпретирует несколько входных данных.
- В разделе "Манипуляции и инерция " объясняется, как обеспечить наиболее гибкий подход к Windows Touch.
Важно!
Windows 11 и более поздней версии
По умолчанию в приложениях Windows больше не будут работать некоторые три и четыре пальца.
По умолчанию взаимодействие касания с тремя и четырьмя пальцами теперь используется системой для операций, таких как переключение или минимизация окон и изменение виртуальных рабочих столов. Так как эти взаимодействия теперь обрабатываются на уровне системы, функциональные возможности вашего приложения могут повлиять на это изменение.
Для поддержки взаимодействия с тремя или четырьмя пальцами в приложении появился новый параметр пользователя, указывающий, обрабатывает ли система эти взаимодействия:
Bluetooth и устройства > Касание > "Три и четыре пальца сенсорные жесты"
Если задано значение "Вкл." (по умолчанию), система будет обрабатывать все взаимодействия с тремя и четырьмя пальцами (приложения не смогут поддерживать их).
Если задано значение Off, взаимодействие с тремя и четырьмя пальцами может поддерживаться приложениями (они не будут обрабатываться системой).
Если приложение должно поддерживать эти взаимодействия, рекомендуется сообщить пользователям об этом параметре и предоставить ссылку, которая запускает приложение Параметры на соответствующую страницу (ms-settings:devices-touch). Дополнительные сведения см. в разделе "Метод Launcher.LaunchUriAsync".
Вы хотите включить входные данные Windows Touch в приложение, использующее RealTimeStylus
Если вы хотите включить входные данные для нескольких контактов на платформе планшетного пк, необходимо реализовать пользовательский подключаемый модуль RealTimeStylus, который интерпретирует данные Windows Touch. Корпорация Майкрософт представила интерфейсы ITablet3 и IRealTimeStylus3 для включения входных данных из нескольких контактов в подключаемом модуле RealTimeStylus. Эти интерфейсы упрощают расширение подключаемых модулей RealTimeStylus для поддержки нескольких точек контакта.
Чтобы проверка включена ли поддержка нескольких контактов, вызовите IsMultiTouch. Чтобы проверка количество поддерживаемых контактов, вызовите Метод GetMaximumCursors. Чтобы включить или отключить поддержку нескольких контактов, вызовите MultiTouchEnabled.
Примечание.
Если вы не включаете несколько точек контакта в RealTimeStylus, вы получите такие жесты, как сдвиг и масштабирование.