Condividi tramite


Navigazione tramite hit testing e posizione dello schermo

Per individuare gli elementi figlio di un oggetto o per determinare le dimensioni di un oggetto, i client possono raggiungere i punti di test sullo schermo. Sono disponibili due metodi:

Uso di IAccessible::accHitTest

Per identificare se un punto si trova all'interno di un oggetto, all'interno del relativo elemento figlio o nessuno dei due, i client chiamano il metodo IAccessible::accHitTest dell'oggetto padre, passando le coordinate dello schermo del punto da sottoporre a hit test. L'elenco seguente descrive alcuni scenari tipici:

  • Se gli elementi figlio dell'oggetto si sovrappongono a un punto specificato, IAccessible::accHitTest recupera l'elemento figlio più in alto che appare visivamente per occupare lo spazio.
  • Se una finestra copre un elemento figlio o se l'elemento figlio viene ritagliato dall'elemento padre, l'hit testing del punto coperto recupera l'elemento figlio anche se non è visibile.
  • Se l'elemento figlio trovato nel punto specificato è un oggetto accessibile, anziché un elemento figlio, il metodo restituisce l'interfaccia IDispatch dell'elemento figlio.

Uso di IAccessible::accLocation

Per ottenere la posizione dello schermo di un oggetto o di uno degli elementi figlio dell'oggetto, i client chiamano IAccessible::accLocation. Questo metodo restituisce le coordinate del rettangolo di delimitazione dell'oggetto specificato. Se l'oggetto non è modellato come un rettangolo, il metodo restituisce le coordinate del rettangolo più piccolo che comprende l'intero oggetto.

La figura seguente mostra la relazione tra l'area dell'oggetto non rettangolare e il rettangolo di delimitazione.

illustrazione che mostra l'area di un oggetto nontangulare (un cerchio) e il relativo rettangolo di delimitazione.

Nota

IAccessible::accHitTest è più preciso di IAccessible::accLocation perché consente ai client di determinare la posizione degli oggetti in base a pixel anziché con rettangoli di delimitazione. Questa precisione è utile, ad esempio, quando un'applicazione raccoglie informazioni monitorando la posizione del puntatore del mouse.