Anotación de mapa de valores

Con la anotación de mapa de valores, puede usar una cadena de asignación para indicar cómo el índice de imagen de un elemento de una vista de lista o vista de árbol corresponde a su rol o estado. Por ejemplo, una cadena de asignación puede indicar que el índice de imagen de una vista de lista 0 se asigna a un rol de casilla, mientras que el índice de imagen 1 se asigna a un rol de botón de radio.

También puede usar la anotación de mapa de valores para especificar cadenas que se asignan a los valores numéricos en un control deslizante.

Cuándo usar esta técnica

Considere la posibilidad de usar la anotación de asignación de valores en las situaciones siguientes.

  • Cuando una vista de lista dibujada por el propietario o una vista de árbol incorpora el uso de imágenes, y desea proporcionar una descripción accesible personalizada (propiedad Description ) basada en esa imagen. En la siguiente ilustración se muestra un ejemplo.

    ilustración del menú Inicio, donde los iconos proporcionan pistas visuales al contenido

  • Cuando un control de vista de lista dibujada por el propietario o vista de árbol incorpora el uso de imágenes para que los elementos de árbol o lista actúen como controles simples, normalmente casillas o botones de radio, y desea asignar la imagen a un rol. La siguiente captura de pantalla muestra un ejemplo.

    captura de pantalla de las opciones de Internet Explorer para establecer el valor de casillas y botones de radio

  • Cuando se usa un control deslizante para seleccionar un valor que se puede describir como algo distinto de un entero simple, como en la siguiente captura de pantalla, donde una cadena describe la configuración de resolución de pantalla.

    captura de pantalla de un control deslizante que se usa para establecer la resolución de pantalla

Con la anotación de mapa de valores, una cadena de asignación indica cómo corresponde el índice de imagen de la lista o árbol a su rol o estado. O bien, puede indicar cómo corresponde el valor numérico de un control deslizante a una cadena. Por ejemplo, una cadena de asignación puede indicar que el índice de imagen de una vista de lista 0 se asigna a un rol de casilla y el índice de imagen 1 se asigna a un rol de botón de radio. Use IAccPropServices::SetHwndPropStr() para adjuntar la cadena de asignación al control.

Dado que se requiere un conocimiento específico del control para admitir la asignación de valores, hay un número limitado de controles y propiedades que admiten anotaciones de mapa de valores, incluidos los mapas de valores deslizantes, las vistas de lista y las vistas de árbol.

Mapa de valores del control deslizante

PROPID_ACC_VALUEMAP contiene una asignación de posiciones de control deslizante interno a cadenas legibles para humanos. Esta propiedad es compatible con el proxy de control deslizante de Oleacc.dll. Si el valor del control deslizante actual se encuentra en el mapa de valores, la cadena correspondiente se expondrá como valor en lugar de la cadena de porcentaje predeterminada (por ejemplo, "50").

Vista de lista y vista de árbol

PROPID_ACC_ROLEMAP, PROPID_ACC_STATEMAP y PROPID_ACC_DESCRIPTONMAP proporcionan asignaciones de índices de imagen de estado a valores de rol y estado. Estos mapas permiten asignar esos índices de imagen a roles adecuados (normalmente ROLE_SYSTEM_RADIOBUTTON o ROLE_SYSTEM_CHECKBUTTON) y bits de estado adicionales (normalmente STATE_SYSTEM_CHECKED).

Para obtener más información sobre la anotación de mapa de valores, vea los temas siguientes:

Formato de asignación de anotaciones

En la tabla siguiente se describen los campos que se incluyen en un mapa de anotaciones.

Campo Descripción
'A' Indica que se usa un esquema de codificación determinado. Se pueden admitir prefijos adicionales para futuros esquemas de codificación.
Carácter delimitador Normalmente, dos puntos (:) se usa, pero puede ser otro carácter excepto null o un espacio vacío. Dado que este carácter se usará como delimitador para los campos restantes, es posible que no se use como parte de un valor en el mapa.
0, 1 o 2 Valor que indica qué clave se está usando. Para las asignaciones de estado y rol de vista de árbol y vista de lista, esta clave puede ser 0 (índice de imagen), 1 (índice de imagen de estado) o 2 (índice de imagen superpuesta). Para los controles deslizantes y otros controles que no ofrecen una opción de claves, este valor debe ser 0.
Carácter delimitador :
Pares clave-valor Cada par consta de una cadena de clave y un carácter delimitador. La cadena de clave es un número y puede estar en formato decimal o hexadecimal (con un prefijo "0x" inicial).
Cadena de valor En el caso de las asignaciones de valores, se trata de una cadena. En el caso de las asignaciones de roles y estados, se trata de un número (decimal o hexadecimal).
Carácter delimitador :

 

Por ejemplo, un mapa puede tener un aspecto similar al siguiente:

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

Cuando este mapa de valores se aplica a un control deslizante, se expondrá un valor de "Caliente" cuando el control deslizante esté en la posición 1. Dado que el valor 2 no se incluye en este ejemplo, se expondrá el valor predeterminado de esa posición. Para un control deslizante, el valor predeterminado sería un valor porcentual, como 33.