Partilhar via


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 um modo de exibição de lista ou 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 mapeia para uma função de caixa de seleção, enquanto o índice de imagem 1 mapeia 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 mapeadas para os valores numéricos em um controle deslizante.

Quando usar esta técnica

Considere o uso da Anotação de Mapa de Valor nas seguintes situações.

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

    ilustração do menu Iniciar, onde os ícones fornecem pistas visuais para o conteúdo

  • Quando um modo de exibição de lista desenhado pelo proprietário ou um controle de exibição de árvore incorpora o uso de imagens para fazer com que a árvore ou os itens de lista ajam como controles simples, geralmente 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 seleção 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, onde 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 da tela

Com a anotação de mapa de valor, uma cadeia de caracteres de mapeamento indica como o índice de imagem da lista ou árvore corresponde à sua função ou estado. Ou, ele 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 mapeia para uma função de caixa de seleção e o índice de imagem 1 mapeia 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 oferecem suporte à anotação de mapa de valor, incluindo mapas de valor deslizante, exibições de lista e exibições em árvore.

Mapa do valor do controle deslizante

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

Vista de Lista e Vista de Árvore

PROPID_ACC_ROLEMAP, PROPID_ACC_STATEMAPe 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 anotação de mapa de valor, consulte os seguintes tópicos:

Formato do mapa de anotação

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

Domínio Descrição
«A» Indica que um esquema de codificação específico é usado. Prefixos adicionais podem ser suportados para futuros esquemas de codificação.
Caractere delimitador Normalmente, um dois pontos (:) é usado, mas pode ser outro caractere, exceto para NULL ou um espaço vazio. Como esse caractere será usado como um delimitador para os campos restantes, ele não pode ser usado como parte de um valor no mapa.
0, 1 ou 2 Um valor que indica qual chave está sendo usada. Para a função e os mapas de estado e Exibição de Árvore e Exibição de Lista, 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 escolha de chaves, esse valor deve ser 0.
Caractere delimitador :
Pares de valores-chave Cada par consiste em uma cadeia de caracteres de tecla e um caractere delimitador. A cadeia de caracteres de chave é um número e pode estar no formato decimal ou hexadecimal (com um prefixo "0x" à esquerda).
Cadeia de caracteres de valor Para mapas de valor, esta é uma cadeia de caracteres. Para mapas de função e estado, este é um número (decimal ou hexadecimal).
Caractere delimitador :

 

Por exemplo, um mapa pode ter a seguinte aparência:

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

Quando esse mapa de valores é aplicado a um controle deslizante, um valor de "Quente" 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.