Navigation durch Treffertests und Bildschirmposition

Um die untergeordneten Elemente eines Objekts zu suchen oder die Größe eines Objekts zu bestimmen, können Clients Testpunkte auf dem Bildschirm treffen. Es stehen zwei Methoden zur Verfügung:

Verwenden von IAccessible::accHitTest

Um zu ermitteln, ob sich ein Punkt innerhalb eines Objekts, innerhalb seines untergeordneten Objekts oder keines von beiden befindet, rufen Clients die IAccessible::accHitTest-Methode des übergeordneten Objekts auf, wobei die Bildschirmkoordinaten des zu überprüfenden Punkts übergeben werden. In der folgenden Liste werden einige typische Szenarien beschrieben:

  • Wenn sich die untergeordneten Elemente des Objekts an einem angegebenen Punkt überlappen, ruft IAccessible::accHitTest das oberste untergeordnete Element ab, das visuell den Raum belegt.
  • Wenn ein Fenster ein untergeordnetes Element abdeckt oder das untergeordnete Element vom übergeordneten Element beschnitten wird, wird das untergeordnete Element abgerufen, obwohl es nicht sichtbar ist.
  • Wenn das am angegebenen Punkt gefundene untergeordnete Objekt im Gegensatz zu einem untergeordneten Element ein zugängliches Objekt ist, gibt die Methode die IDispatch-Schnittstelle des untergeordneten Elements zurück.

Verwenden von IAccessible::accLocation

Um die Bildschirmposition eines Objekts oder einer der untergeordneten Objekte abzurufen, rufen Clients IAccessible::accLocation auf. Diese Methode gibt die Koordinaten des begrenzungsenden Rechtecks des angegebenen Objekts zurück. Wenn das Objekt nicht wie ein Rechteck geformt ist, gibt die Methode die Koordinaten des kleinsten Rechtecks zurück, das das gesamte Objekt umfasst.

Die folgende Abbildung zeigt die Beziehung zwischen dem Bereich eines nicht rechteckigen Objekts und seinem umschließenden Rechteck.

Abbildung, die den Bereich (kreis) eines nicht ectangularen Objekts und sein umgebendes Rechteck zeigt.

Hinweis

IAccessible::accHitTest ist präziser als IAccessible::accLocation , da Clients die Position von Objekten pixelweise und nicht mit umgebenden Rechtecken bestimmen können. Diese Genauigkeit ist z. B. nützlich, wenn eine Anwendung Informationen sammelt, indem sie die Position des Mauszeigers nachverfolgt.