Compartilhar via


Navegação por meio do teste de ocorrência e do local da tela

Para localizar os filhos de um objeto ou determinar o tamanho de um objeto, os clientes podem atingir pontos de teste na tela. Dois métodos estão disponíveis:

Usando IAccessible::accHitTest

Para identificar se um ponto está dentro de um objeto, dentro de seu filho ou nenhum dos dois, os clientes chamam o método IAccessible::accHitTest do objeto pai, passando as coordenadas de tela do ponto a ser testado. A lista a seguir descreve alguns cenários típicos:

  • Se os filhos do objeto se sobrepõem em um ponto especificado, IAccessible::accHitTest recupera o filho mais alto que visualmente parece ocupar o espaço.
  • Se uma janela cobrir um filho ou se o filho for recortado pelo pai, o teste de clique no ponto coberto recuperará o filho mesmo que ele não esteja visível.
  • Se o filho encontrado no ponto especificado for um objeto acessível, em vez de um elemento filho, o método retornará a interface IDispatch do filho.

Usando IAccessible::accLocation

Para obter o local da tela de um objeto ou um dos filhos do objeto, os clientes chamam IAccessible::accLocation. Esse método retorna as coordenadas do retângulo delimitador do objeto especificado. Se o objeto não tiver a forma de um retângulo, o método retornará as coordenadas do menor retângulo que abrange todo o objeto.

A ilustração a seguir mostra a relação entre a região não retangular de um objeto e seu retângulo delimitador.

ilustração mostrando a região de um objeto não retangular (um círculo) e seu retângulo delimitador.

Observação

IAccessible::accHitTest é mais preciso do que IAccessible::accLocation porque permite que os clientes determinem o local dos objetos em uma base pixel a pixel em vez de com retângulos delimitador. Essa precisão é útil, por exemplo, quando um aplicativo está coletando informações rastreando o local do ponteiro do mouse.