Pergunta

Eu tenho um Windows Mobile 5.0 aplicativo, escrito em C ++ MFC, com lotes de caixas de diálogo. Um dos dispositivos atualmente estou com objectivo não tem uma tecla tab, então eu gostaria de usar outra chave para se mover entre os controles. Isso é bom para os botões mas não editar controles ou caixas de combinação. Eu olhei para um semelhante pergunta mas a resposta não faz realmente terno. Eu tentei substituir o CDialog :: OnKeyDown sem sucesso, e preferia não ter de substituir a funcionalidade de teclas para cada controle em cada diálogo. Meus pensamentos até agora são para escrever novas classes substituindo CEdit e CComboBox, mas como sempre estou checando se há uma maneira mais fácil, como temporariamente re-programar outra chave.

Foi útil?

Solução

Eu não sei MFC que boa , mas talvez você poderia retirá-lo por subclasse procedimentos de janela de todos os controles com uma única classe, que só iria lidar com casos de pressionar as teclas do cursor e passagem o resto dos eventos para os procedimentos originais.

Você teria que fornecer seu próprio mecanismo de mudança para um controle apropriado, dependendo de qual tecla do cursor foi pressionado, mas pode valer a pena os ganhos de usabilidade.

Se isso trabalhou, você poderia enumerar todos os controles de diálogo e subclasse-los automaticamente.

Windows Mobile 6 permite alternar entre controles de diálogo usando cursores por padrão. - É uma maneira nova e mais "smartphoney" de se mover em torno da interface do usuário e é incrivelmente conveniente

Outras dicas

Você não pode usar o D-Pad para navegar entre campos?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top