Annotation de carte 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 une vue de 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’une vue de liste 0 est mappé à un rôle de case à cocher, tandis que l’index d’image 1 est mappé à 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 sur un curseur.
Quand utiliser cette technique
Envisagez d’utiliser l’annotation de mappage de valeurs dans les situations suivantes.
Lorsqu’un affichage liste ou arborescence dessiné par le propriétaire incorpore l’utilisation d’images et que vous souhaitez fournir une description accessible personnalisée (Description propriété) basée sur cette image. L’illustration suivante montre un exemple.
Lorsqu’un contrôle de liste dessiné par le propriétaire ou un contrôle d’arborescence intègre l’utilisation d’images pour que les éléments d’arborescence ou de liste agissent comme des contrôles simples, cochent généralement des cases d’option et que vous souhaitez mapper l’image à un rôle. La capture d’écran suivante montre un exemple.
Lorsqu’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.
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. Il peut également indiquer la façon dont 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’une vue de liste 0 correspond à un rôle de case à cocher et d’index d’image 1 mappe à un rôle de case d’option. Utilisez IAccPropServices ::SetHwndPropStr() pour attacher la chaîne de mappage au contrôle.
Étant donné que les connaissances spécifiques au contrôle 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 carte de valeurs, notamment les mappages de valeurs de curseur, les vues de liste et les arborescences.
Mappage des valeurs du curseur
PROPID_ACC_VALUEMAP contient un mappage des positions de curseur interne 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 est trouvée 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_STATEMAPet PROPID_ACC_DESCRIPTONMAP fournissent des mappages des index d’image d’état aux valeurs de rôle et d’état. Ces mappages permettent à ces index d’image d’être mappés aux rôles appropriés (généralement ROLE_SYSTEM_RADIOBUTTON ou ROLE_SYSTEM_CHECKBUTTON) et aux 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 :
- à l’aide de l’annotation de mappage de valeurs
- Exemple d’annotation de mappage de valeurs
Format de carte d’annotation
Le tableau suivant décrit les champs inclus dans une carte d’annotation.
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 futurs schémas d’encodage. |
Caractère délimiteur | En règle générale, 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 peut ne 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 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 touches, cette valeur doit être 0. |
Caractère délimiteur | : |
Paires clé-valeur | Chaque paire se compose d’une chaîne de touches 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 mappages 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 à ce qui suit :
A:0:0:Cold:1:Warm:3:Hot:
Lorsque cette carte de valeurs est appliquée à un contrôle de curseur, une valeur de « Chaud » est exposée lorsque le curseur est à la position 1. Étant donné que la valeur 2 n’est pas incluse dans cet exemple, la valeur par défaut de cette position sera exposée. Pour un curseur, la valeur par défaut est une valeur de pourcentage, telle que 33.