validando CEdit sem subclassificação
Pergunta
Existe alguma maneira de validar o conteúdo de uma caixa de CEdit sem subclassificação?
Eu quero verificar para caracteres de nomes de arquivos inválidos em uma caixa CEdit e não permitir que o usuário insira-lo em tudo (pressão não devem ser registados, se colado na caixa, os caracteres inválidos deve simplesmente não fazê-lo para a caixa de edição ) ..
Existe alguma maneira fácil de fazer isso?
Em uma nota lateral, como posso fazer uma variável que está ligada a esta caixa? Se eu adicionar uma variável que não é um controle, seria esta variável sempre conter o que está no controle de edição?
Obrigado ..
Solução
Por http://msdn.microsoft.com /en-us/library/f7yhsd2b(VS.80).aspx : "Se você deseja manipular mensagens de notificação do Windows enviadas por um controle de edição a seu pai (geralmente uma classe derivada de CDialog), adicionar uma mensagem- Roteiro de entrada e função de membro mensagem-manipulador para a classe pai para cada mensagem." e "ON_EN_UPDATE O controle de edição está prestes a exibir texto alterado. Enviado após o controle tiver formatado o texto, mas antes de telas de texto para que o tamanho da janela pode ser alterado, se necessário." -. Assim, sem subclassificação CEdit, você pode veterinário e possivelmente bloquear atualizações via Windows mensagem-map / mensagem-manipulador no pai
Outras dicas
Algum tempo há muito tempo eu criei este . Concedido, isso é muito datada, mas idéias ainda mantêm:
Substituir PreTranslateMessage no seu diálogo. Quando a mensagem é WM_KEYDOWN e definir o foco () retorna o HWND do seu controle de edição, comer a mensagem quando você não faz como a chave.