Usando controles personalizados
Você pode personalizar controles padrão usando o desenho do proprietário para alterar a aparência do controle e estabelecer uma superclasse ou subclasse para alterar o comportamento do controle. Em cada caso, o código do sistema subjacente para o tipo de controle padrão lida com funções de controle básicas. A maioria desses controles pode ser acessível se você usá-los corretamente.
Um controle desenhado pelo proprietário baseado em um controle padrão aparece como o controle padrão para auxílios de acessibilidade e dá suporte à Acessibilidade Ativa da Microsoft; no entanto, ele tem uma aparência personalizada. Alguns aplicativos usam controles personalizados para alterar a aparência de um controle, mas os controles desenhados pelo proprietário são uma solução mais acessível. Para obter mais informações sobre como definir menus desenhados pelo proprietário e expor controles desenhados pelo proprietário, consulte Acessibilidade.
Estabelecer uma superclasse ou subclasse é uma técnica para personalizar o comportamento dos controles existentes. Dependendo do novo comportamento do controle, pode ser necessário complementar as informações de acessibilidade que ele expõe. Por exemplo, um aplicativo pode usar um controle desenhado pelo proprietário para exibir um X em uma caixa de marcar selecionada, em vez de uma marca de marcar ou rotular um botão de comando com uma imagem em vez de uma palavra.
Ao usar controles desenhados pelo proprietário que são uma superclasse ou uma subclasse:
- Forneça rótulos para todos os controles, mesmo quando os rótulos não estiverem visíveis na tela. Se você personalizar um controle para que o legenda padrão não fique visível (por exemplo, um botão com uma face gráfica) e deixe o legenda como uma cadeia de caracteres em branco, o auxílio de acessibilidade não poderá obter o legenda e usá-lo para identificar o controle.
- Verifique se há suporte para WM_GETTEXT .
- Verifique se há suporte para todas as mensagens específicas da classe. É especialmente importante dar suporte a mensagens de recuperação de texto, como CB_GETLBTEXT e LB_GETTEXT. Defina os bits de estilo apropriados, como CBS_HASSTRINGS e LBS_HASSTRINGS, para indicar que o controle dá suporte a essas mensagens.