Verfügbarmachen Owner-Drawn Listenfeldelemente

Anwendungsentwickler müssen IAccessible nicht implementieren, um die Elemente in einem vom Besitzer gezeichneten Listenfeld verfügbar zu machen, das den Stil LBS_HASSTRINGS hat, da Microsoft Active Accessibility die Elemente in Listenfeldern mit diesem Format verfügbar macht. Die Elemente in einem vom Besitzer gezeichneten Listenfeld mit der LBS_HASSTRINGS-Formatvorlage werden als Text angezeigt. Diese Formatvorlage wird jedoch auch für vom Besitzer gezeichnete Listenfelder verwendet, die keinen Text anzeigen, sodass die Listenfeldelemente von Microsoft Active Accessibility verfügbar gemacht werden.

So ermöglichen Sie Microsoft Active Accessibility, die Elemente in einem vom Besitzer gezeichneten Listenfeld verfügbar zu machen, in dem kein Text angezeigt wird:

  • Verwenden Sie beim Erstellen des Listenfelds die LBS_HASSTRINGS Formatvorlage.
  • Erstellen Sie eine Textentsprechung, die jedes Element im Listenfeld benennt oder beschreibt.
  • Verwenden Sie beim Hinzufügen von Elementen zum vom Besitzer gezeichneten Listenfeld die LB_ADDSTRING Meldung, um den Text hinzuzufügen, den Microsoft Active Accessibility verfügbar machen soll. Dieser Text wird nicht angezeigt, sodass er nicht Teil der vom Besitzer gezeichneten Daten ist. Fügen Sie die vom Besitzer gezeichneten Elementdaten mithilfe der LB_SETITEMDATA-Nachricht hinzu.

Beachten Sie bei Verwendung der obigen Methode Folgendes:

  • Wenn Sie die LBS_SORT Formatvorlage verwenden, wird das Listenfeld anhand der angegebenen Zeichenfolgen und nicht anhand der WM_COMPAREITEM Rückrufprozedur sortiert.
  • Verwenden Sie bei Listenfeldern für vom Besitzer gezeichnete Variablen, die mit dem Stil LBS_OWNERDRAWVARIABLE erstellt wurden, eine globale Variable oder einen anderen Mechanismus, um nachzuverfolgen, wann das elementData-Element der MEASUREITEMSTRUCT gültig ist. Die globale Variable wird benötigt, da das System die WM_MEASUREITEM Nachricht sendet, sobald die Zeichenfolge hinzugefügt wird, aber bevor die Elementdaten angefügt werden, und an diesem Punkt ist der itemData-Member ungültig.
  • Um die Zeichenfolge für ein Element in einem Listenfeld mit der LBS_HASSTRINGS-Formatvorlage zu ändern, löschen Sie das Element mit der LB_DELETESTRING Nachricht, und fügen Sie die neue Zeichenfolge mit der LB_ADDSTRING Nachricht hinzu.