Partager via


Exposition Owner-Drawn éléments de zone de liste

Les développeurs d’applications n’ont pas besoin d’implémenter IAccessible pour exposer les éléments dans une zone de liste dessinée par le propriétaire qui a le style LBS_HASSTRINGS , car Microsoft Active Accessibility expose les éléments dans les zones de liste avec ce style. Les éléments d’une zone de liste dessinée par le propriétaire avec le style LBS_HASSTRINGS sont affichés sous forme de texte. Toutefois, ce style est également utilisé avec les zones de liste dessinées par le propriétaire qui n’affichent pas de texte afin que les éléments de zone de liste soient exposés par Microsoft Active Accessibility.

Pour permettre à Microsoft Active Accessibility d’exposer les éléments d’une zone de liste dessinée par le propriétaire qui n’affiche pas de texte :

  • Utilisez le style LBS_HASSTRINGS lors de la création de la zone de liste.
  • Créez un équivalent textuel qui nomme ou décrit chaque élément dans la zone de liste.
  • Lorsque vous ajoutez des éléments à la zone de liste dessinée par le propriétaire, utilisez le message LB_ADDSTRING pour ajouter le texte que vous souhaitez que Microsoft Active Accessibility expose. Ce texte n’étant pas affiché, il ne fait pas partie des données dessinées par le propriétaire. Ajoutez les données d’élément dessinées par le propriétaire à l’aide du message LB_SETITEMDATA .

Lorsque vous utilisez la méthode ci-dessus, notez les points suivants :

  • Si vous utilisez le style LBS_SORT , la zone de liste est triée à l’aide des chaînes fournies et non de la procédure de rappel WM_COMPAREITEM .
  • Avec les zones de liste de variables dessinées par le propriétaire créées avec le style LBS_OWNERDRAWVARIABLE, utilisez une variable globale ou un autre mécanisme pour effectuer le suivi du moment où le membre itemData de MEASUREITEMSTRUCT est valide. La variable globale est nécessaire, car le système envoie le message WM_MEASUREITEM dès que la chaîne est ajoutée, mais avant que les données d’élément ne sont jointes, et à ce stade, le membre itemData n’est pas valide.
  • Pour modifier la chaîne d’un élément dans une zone de liste avec le style LBS_HASSTRINGS , supprimez l’élément avec le message LB_DELETESTRING et ajoutez la nouvelle chaîne avec le message LB_ADDSTRING.