WM_TOUCH против WM_POINTER
Какой я должен использовать? Я использую только Windows 8.x, поэтому меня не волнует тот факт, что WM_POINTER не имеет обратной совместимости с Windows 7 и т. Д. Меня также не волнуют жесты; только о сырых штрихах. Кажется, что единственным очевидным преимуществом WM_POINTER является то, что он объединяет сенсорный ввод и ввод с помощью мыши (но это легко обойти с помощью WM_TOUCH, потому что события мыши можно проверять с помощью GetMessageExtraInfo()). Простота использования также не является проблемой; Я уже использую WM_TOUCH, и мне просто интересно, стоит ли мне переключаться на WM_POINTER. Моя главная проблема - это задержка и эффективность (приложение, связанное с игрой). Я не могу сказать, является ли WM_POINTER оберткой над WM_TOUCH, которая имеет дополнительные издержки. Любые комментарии?
2 ответа
WM_TOUCH
устарел. использование WM_POINTER
исключительно. (WM_TOUCH
на самом деле обертка над WM_POINTER
.)
GetMessageExtraInfo
также общеизвестно хрупким. Вы должны вызывать его сразу после вызова GetMessage, иначе вы рискуете получить промежуточные вызовы функций, совершая вызов COM или что-то еще, что приводит к вызову GetMessage.
Я знаю, что это ответ на очень старый вопрос, но кто-то еще может найти его полезным: мне нужна была упрощенная корреляция координат X,Y сенсорного экрана с координатами экрана, предоставляемая WM_TOUCH, но мне нужна была собственная точность сенсорного дигитайзера, а не координаты экрана которые очень похожи на данные дигитайзера (это все, что доступно из WM_TOUCH). Мне нужны были эти данные с полным разрешением для тестирования сенсорного экрана в соответствии со спецификацией. Вы можете получить координаты низкого уровня, используя необработанный ввод, но регистрация для необработанного ввода останавливает сообщения WM_TOUCH. Итак, как указано выше, я попытался использовать сообщения WM_POINTERxxxxx и обнаружил, что регистрация необработанных данных HID не отключает сообщения WM_POINTER. Задача решена.