Verfügbar machen Owner-Drawn Listenfeldelemente

Anwendungsentwickler müssen IAccessible nicht implementieren, um die Elemente in einem vom Besitzer gezeichneten Listenfeld mit dem Stil LBS _ HASSTRINGS verfügbar zu machen, da Microsoft Active Accessibility die Elemente in Listenfeldern mit diesem Stil verfügbar macht. Die Elemente in einem vom Besitzer gezeichneten Listenfeld mit dem LBS _ HASSTRINGS-Stil werden als Text angezeigt. Dieser Stil wird jedoch auch mit vom Besitzer gezeichneten Listenfeldern verwendet, die keinen Text anzeigen, sodass die Listenfeldelemente von der Microsoft Active Accessibility.

So ermöglichen 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 den LBS _ HASSTRINGS-Stil.
  • Erstellen Sie eine Textentität, die jedes Element im Listenfeld benennt oder beschreibt.
  • Wenn Sie dem Vom Besitzer gezeichneten Listenfeld Elemente hinzufügen, verwenden Sie die LB _ ADDSTRING-Meldung, um den Text hinzuzufügen, den Microsoft Active Accessibility verfügbar machen möchten. Dieser Text wird nicht angezeigt und ist daher nicht Teil der vom Besitzer gezeichneten Daten. Fügen Sie die vom Besitzer gezeichneten Elementdaten mithilfe der LB _ SETITEMDATA-Nachricht hinzu.

Beachten Sie bei Verwendung der oben genannten Methode Folgendes:

  • Wenn Sie den LBS _ SORT-Stil verwenden, wird das Listenfeld mit den angegebenen Zeichenfolgen und nicht mit der WM _ COMPAREITEM-Rückrufprozedur sortiert.
  • Verwenden Sie bei Listenfeldern mit vom Besitzer gezeichneten Variablen, die mit dem Stil LBS _ OWNERDRAWVARIABLE erstellt wurden, eine globale Variable oder einen anderen Mechanismus, um zu verfolgen, wann das itemData-Element von MEASUREITEMSTRUCT gültig ist. Die globale Variable ist erforderlich, da das System die WM _ MEASUREITEM-Nachricht sendet, sobald die Zeichenfolge hinzugefügt wird, aber bevor die Elementdaten angefügt werden. An diesem Punkt ist das itemData-Element ungültig.
  • Um die Zeichenfolge für ein Element in einem Listenfeld im LBS _ HASSTRINGS-Format zu ändern, löschen Sie das Element mit der LB _ DELETESTRING-Meldung, und fügen Sie die neue Zeichenfolge mit der LB _ ADDSTRING-Meldung hinzu.