Anotação do Mapa de Valor

Com a anotação de mapa de valor, você pode usar uma cadeia de caracteres de mapeamento para indicar como o índice de imagem de um item em uma exibição de lista ou exibição de árvore corresponde à sua função ou estado. Por exemplo, uma cadeia de caracteres de mapeamento pode indicar que o índice de imagem 0 de uma exibição de lista é mapeado para uma função de marcar caixa, enquanto o índice de imagem 1 é mapeado para uma função de botão de opção.

Você também pode usar a anotação de mapa de valor para especificar cadeias de caracteres que são mapeadas para os valores numéricos em um controle deslizante.

Quando usar essa técnica

Considere usar a Anotação do Mapa de Valor nas situações a seguir.

  • Quando uma exibição de lista ou exibição de árvore desenhada pelo proprietário incorpora o uso de imagens e você deseja fornecer uma descrição acessível personalizada (propriedade Description ) com base nessa imagem. A ilustração a seguir mostra um exemplo.

    ilustração do menu iniciar, em que os ícones fornecem pistas visuais para o conteúdo

  • Quando uma exibição de lista desenhada pelo proprietário ou um controle de exibição de árvore incorpora o uso de imagens para fazer com que os itens de árvore ou lista atuem como controles simples, normalmente caixas de seleção ou botões de opção, e você deseja mapear a imagem para uma função. A captura de tela a seguir mostra um exemplo.

    captura de tela das opções do Internet Explorer para definir o valor de caixas de marcar e botões de opção

  • Quando um controle deslizante é usado para selecionar um valor que pode ser descrito como algo diferente de um inteiro simples, como na captura de tela a seguir, em que a configuração de resolução de tela é descrita por uma cadeia de caracteres.

    captura de tela de um controle deslizante usado para definir a resolução de tela

Com a anotação do mapa de valor, uma cadeia de caracteres de mapeamento indica como o índice de imagem da lista ou da árvore corresponde à sua função ou estado. Ou pode indicar como o valor numérico de um controle deslizante corresponde a uma cadeia de caracteres. Por exemplo, uma cadeia de caracteres de mapeamento pode indicar que o índice de imagem 0 de uma exibição de lista é mapeado para uma função de marcar caixa e o índice de imagem 1 é mapeado para uma função de botão de opção. Use IAccPropServices::SetHwndPropStr() para anexar a cadeia de caracteres de mapeamento ao controle.

Como o conhecimento específico do controle é necessário para dar suporte ao mapeamento de valor, há um número limitado de controles e propriedades que dão suporte à anotação de mapa de valor, incluindo mapas de valor do controle deslizante, exibições de lista e exibições de árvore.

Mapa do valor do controle deslizante

PROPID_ACC_VALUEMAP contém um mapeamento de posições de controle deslizante internas para cadeias de caracteres legíveis por humanos. Essa propriedade é compatível com o proxy do controle deslizante Oleacc.dll. Se o valor do controle deslizante atual for encontrado no mapa de valor, a cadeia de caracteres correspondente será exposta como o valor em vez da cadeia de caracteres percentual padrão (por exemplo, "50").

Exibição de Lista e Exibição de Árvore

PROPID_ACC_ROLEMAP, PROPID_ACC_STATEMAP e PROPID_ACC_DESCRIPTONMAP fornecem mapeamentos de índices de imagem de estado para valores de função e estado. Esses mapas permitem que esses índices de imagem sejam mapeados para funções apropriadas (geralmente ROLE_SYSTEM_RADIOBUTTON ou ROLE_SYSTEM_CHECKBUTTON) e bits de estado adicionais (geralmente STATE_SYSTEM_CHECKED).

Para obter mais informações sobre a anotação de mapa de valor, consulte os seguintes tópicos:

Formato de mapa de anotação

A tabela a seguir descreve os campos incluídos em um mapa de anotação.

Campo Descrição
'A' Indica que um esquema de codificação específico é usado. Prefixos adicionais podem ter suporte para esquemas de codificação futuros.
Caractere delimitador Normalmente dois-pontos (:) é usado, mas pode ser outro caractere, exceto NULL ou um espaço vazio. Como esse caractere será usado como um delimitador para os campos restantes, ele pode não ser usado como parte de um valor no mapa.
0, 1 ou 2 Um valor que indica qual chave está sendo usada. Para mapas de estado e função exibição de lista e exibição de árvore, essa chave pode ser 0 (índice de imagem), 1 (índice de imagem de estado) ou 2 (índice de imagem de sobreposição). Para controles deslizantes e outros controles que não oferecem uma opção de chaves, esse valor deve ser 0.
Caractere delimitador :
Pares chave-valor Cada par consiste em uma cadeia de caracteres de chave e um caractere delimitador. A cadeia de caracteres de chave é um número e pode estar em formato decimal ou hexadecimal (com um prefixo "0x" à esquerda).
Cadeia de caracteres de valor Para mapas de valor, essa é uma cadeia de caracteres. Para mapas de função e estado, esse é um número (decimal ou hexadecimal).
Caractere delimitador :

 

Por exemplo, um mapa pode ser semelhante ao seguinte:

A:0:0:Cold:1:Warm:3:Hot:

Quando esse mapa de valores for aplicado a um controle deslizante, um valor de "Warm" será exposto quando o controle deslizante estiver na posição 1. Como o valor 2 não está incluído neste exemplo, o valor padrão para essa posição será exposto. Para um controle deslizante, o padrão seria um valor percentual, como 33.