Перемещение между диалоговыми элементами управления в Windows Mobile без клавиши табуляции

StackOverflow https://stackoverflow.com/questions/165984

Вопрос

У меня есть приложение для Windows Mobile 5.0, написанное на C ++ MFC, с множеством диалогов. На одном из устройств, на которое я сейчас нацеливаюсь, нет клавиши табуляции, поэтому я бы хотел использовать другую клавишу для перемещения между элементами управления. Это хорошо для кнопок, но не для редактирования элементов управления или комбинированных полей. Я смотрел на a-tab "> похожий вопрос но ответ не очень устраивает. Я попытался переопределить CDialog :: OnKeyDown безрезультатно, и, скорее всего, не пришлось бы переопределять функциональность нажатия клавиш для каждого элемента управления в каждом диалоге. Пока я думаю о том, чтобы написать новые классы, заменяющие CEdit и CComboBox, но, как всегда, я просто проверяю, есть ли более простой способ, например, временно перепрограммировать другой ключ.

Это было полезно?

Решение

Я не знаю MFC , что хорошо , но, возможно, вы могли бы осуществить его путем подкласса оконных процедур всех этих элементов управления с одним классом, который будет обрабатывать только случаи нажатия клавиш курсора и передачи остальные события к оригинальным процедурам.

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

Если бы это сработало, вы могли бы перечислить все диалоговые элементы управления и автоматически создать их подклассы.

Windows Mobile 6 позволяет переключаться между диалоговыми элементами управления по умолчанию с помощью курсоров - это новое, более «умное» приложение. способ перемещения по интерфейсу, и это невероятно удобно.

Другие советы

Разве вы не можете использовать D-Pad для навигации между полями?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top