Partager via


Annotation de mappage de valeurs

Avec l’annotation de mappage de valeurs, vous pouvez utiliser une chaîne de mappage pour indiquer comment l’index d’image d’un élément dans un affichage liste ou une arborescence correspond à son rôle ou à son état. Par exemple, une chaîne de mappage peut indiquer que l’index d’image d’un affichage liste 0 est mappé à un rôle de case activée zone, tandis que l’index d’image 1 correspond à un rôle de case d’option.

Vous pouvez également utiliser l’annotation de mappage de valeurs pour spécifier des chaînes qui correspondent aux valeurs numériques d’un curseur.

Quand utiliser cette technique

Envisagez d’utiliser l’annotation de mappage de valeurs dans les situations suivantes.

  • Lorsqu’un affichage de liste dessiné par le propriétaire ou une arborescence intègre l’utilisation d’images et que vous souhaitez fournir une description accessible personnalisée (propriété Description ) basée sur cette image. L'illustration suivante montre un exemple.

    illustration du menu Démarrer, où les icônes fournissent des indices visuels au contenu

  • Lorsqu’un affichage liste dessiné par le propriétaire ou un contrôle d’arborescence intègre l’utilisation d’images pour que l’arborescence ou les éléments de liste agissent comme des contrôles simples, généralement des cases à cocher ou des cases d’option, et que vous souhaitez mapper l’image à un rôle. La capture d’écran suivante présente un exemple.

    capture d’écran des options d’Internet Explorer pour définir la valeur des cases d’case activée et des cases d’option

  • Quand un curseur est utilisé pour sélectionner une valeur qui peut être décrite comme autre chose qu’un entier simple, comme dans la capture d’écran suivante, où le paramètre de résolution d’écran est décrit par une chaîne.

    capture d’écran d’un curseur utilisé pour définir la résolution de l’écran

Avec l’annotation de mappage de valeurs, une chaîne de mappage indique comment l’index d’image de la liste ou de l’arborescence correspond à son rôle ou à son état. Elle peut également indiquer comment la valeur numérique d’un curseur correspond à une chaîne. Par exemple, une chaîne de mappage peut indiquer que l’index d’image d’un affichage liste 0 est mappé à un rôle de case activée zone et que l’index d’image 1 correspond à un rôle de case d’option. Utilisez IAccPropServices::SetHwndPropStr() pour attacher la chaîne de mappage au contrôle.

Étant donné que des connaissances spécifiques aux contrôles sont nécessaires pour prendre en charge le mappage de valeurs, il existe un nombre limité de contrôles et de propriétés qui prennent en charge l’annotation de mappage de valeurs, notamment les mappages de valeurs de curseur, les affichages de liste et les arborescences.

Mappage des valeurs du curseur

PROPID_ACC_VALUEMAP contient un mappage des positions de curseur internes aux chaînes lisibles par l’homme. Cette propriété est prise en charge par le proxy de curseur Oleacc.dll. Si la valeur du curseur actuelle se trouve dans le mappage de valeurs, la chaîne correspondante est exposée en tant que valeur au lieu de la chaîne de pourcentage par défaut (par exemple, « 50 »).

Affichage Liste et Arborescence

PROPID_ACC_ROLEMAP, PROPID_ACC_STATEMAP et PROPID_ACC_DESCRIPTONMAP fournissent des mappages entre les index d’image d’état et les valeurs de rôle et d’état. Ces mappages permettent de mapper ces index d’images à des rôles appropriés (généralement ROLE_SYSTEM_RADIOBUTTON ou ROLE_SYSTEM_CHECKBUTTON) et à des bits d’état supplémentaires (généralement STATE_SYSTEM_CHECKED).

Pour plus d’informations sur l’annotation de mappage de valeurs, consultez les rubriques suivantes :

Format de carte d’annotation

Le tableau suivant décrit les champs inclus dans une carte d’annotations.

Champ Description
'A' Indique qu’un schéma de codage particulier est utilisé. Des préfixes supplémentaires peuvent être pris en charge pour les schémas d’encodage futurs.
Caractère délimiteur Généralement un signe deux-points (:) est utilisé, mais peut être un autre caractère à l’exception de NULL ou d’un espace vide. Étant donné que ce caractère sera utilisé comme délimiteur pour les champs restants, il ne peut pas être utilisé dans le cadre d’une valeur dans la carte.
0, 1 ou 2 Valeur qui indique la clé utilisée. Pour les mappages de rôle et d’état d’arborescence et d’affichage de liste, cette clé peut être 0 (index d’image), 1 (index d’image d’état) ou 2 (index d’image de superposition). Pour les curseurs et autres contrôles qui n’offrent pas de choix de clés, cette valeur doit être 0.
Caractère délimiteur :
Paires clé-valeur Chaque paire se compose d’une chaîne de clé et d’un caractère délimiteur. La chaîne de clé est un nombre et peut être au format décimal ou hexadécimal (avec un préfixe « 0x » de début).
Chaîne de valeur Pour les mappages de valeurs, il s’agit d’une chaîne. Pour les cartes de rôle et d’état, il s’agit d’un nombre (décimal ou hexadécimal).
Caractère délimiteur :

 

Par exemple, une carte peut ressembler à ceci :

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

Lorsque ce mappage de valeurs est appliqué à un contrôle de curseur, la valeur « Warm » est exposée lorsque le curseur se trouve à la position 1. Étant donné que la valeur 2 n’est pas incluse dans cet exemple, la valeur par défaut de cette position est exposée. Pour un curseur, la valeur par défaut est un pourcentage, par exemple 33.