TouchPanelSetCalibration не обновляет калибровку

проблема

Наш продукт предоставляет мастер для калибровки сенсорного экрана. Особое требование заключается в том, что мне нужно проверять каждую новую калибровку, выполняемую этим мастером. Проверка довольно проста, хотя. После калибровки сенсорного экрана отображается новый экран, содержащий 4 сенсорных цели (кнопки), если пользователь может поразить каждую цель в течение заданного периода времени, калибровка считается успешной. Если время истекает, данные калибровки в реестре должны быть восстановлены, и сенсорный драйвер должен быть восстановлен без перезапуска.

Подход

  1. Резервное копирование HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\TOUCH\CalibrationData
  2. Покажите встроенный интерфейс калибровки Windows CE, используя: TouchCalibrate()
  3. Показать пользовательский экран подтверждения, как описано выше.
  4. Если проверка не удалась, восстановите реестр и позвоните TouchPanelSetCalibration(...) используя старые данные калибровки.

При звонке TouchPanelSetCalibration(...) Я получаю следующий вывод:

Maximum Allowed Error 54:
Calibration Results:
Screen    =>    Mapped
( 240,  136) => ( 240,  130)
(  96,   54) => (  93,   57)
(  96,  218) => (  99,  218)
( 384,  218) => ( 381,  220)
( 384,   54) => ( 387,   55)
Maximum error (square of Euclidean distance in screen units) = 36

Реестр должным образом восстановлен и, учитывая вывод, я предполагаю, что данные калибровки также правильно передаются драйверу.

Но как-то сенсорная калибровка не восстанавливается без перезагрузки системы.

Нужно ли как-то сигнализировать об этом изменении, отправив сообщение или запустив событие? Нужно ли делать какие-либо дополнительные вызовы API?
… Любая помощь приветствуется

Благодарю.

~ Sambuca

0

Решение

Я также разместил этот вопрос на Форумы MSDN. Вот ответ, который я получил там:

Точка входа драйвера Touch TouchPanelSetCalibration должен быть назван
GWES для обновления данных калибровки. Когда вызывается от пользователя
приложение, API будет обновлять только данные, хранящиеся в
прикладной процесс.

Но есть другой подход для реализации вашей калибровки касания
Мастер.

Touch Calibration UI (calibrui), показанный TouchCalibrate() может быть
настроены. По сути, вам нужно заменить подтверждение по умолчанию
экран с вашей собственной реализацией.

Инструкции о том, как клонировать CalibrUi по умолчанию можно найти:

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]