Перемещение между диалоговыми элементами управления в Windows Mobile без клавиши табуляции - PullRequest
0 голосов
/ 03 октября 2008

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

Ответы [ 2 ]

1 голос
/ 03 октября 2008

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

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

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

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

0 голосов
/ 03 октября 2008

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

...