Partilhar via


Usando controles personalizados

Você pode personalizar controles padrão usando o desenho do proprietário para alterar a aparência do controle e estabelecendo 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 básicas de controle. A maioria desses controles pode ser acessível se você usá-los corretamente.

Um controle desenhado pelo proprietário que é baseado em um controle padrão aparece como o controle padrão para auxílios de acessibilidade e suporta Microsoft Ative Accessibility; no entanto, 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 usuário e expor componentes desenhados pelo usuário, consulte a secção sobre acessibilidade.

Estabelecer uma superclasse ou subclasse é uma técnica para personalizar o comportamento de 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 seleção selecionada, em vez de uma marca de seleção, 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 a legenda padrão não fique visível (por exemplo, um botão com um rosto gráfico) e deixar a legenda como uma cadeia de caracteres em branco, o auxílio de acessibilidade não poderá obter a legenda e usá-la para identificar o controle.
  • Certifique-se de que WM_GETTEXT é suportado.
  • Certifique-se de que todas as mensagens específicas da classe são suportadas. É 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 suporta essas mensagens.