Compartilhar via


Método IViewObjectEx::QueryHitRect (ocidl.h)

Indica se algum ponto em um retângulo está dentro de um determinado aspecto de desenho de um objeto.

Sintaxe

HRESULT QueryHitRect(
  [in]  DWORD   dwAspect,
  [in]  LPCRECT pRectBounds,
  [in]  LPCRECT pRectLoc,
  [in]  LONG    lCloseHint,
  [out] DWORD   *pHitResult
);

Parâmetros

[in] dwAspect

O aspecto de desenho solicitado.

[in] pRectBounds

Um retângulo delimitador de objeto nas coordenadas do cliente da janela que contém. Esse retângulo é calculado e passado pelo contêiner para que o objeto possa interpretar significativamente o local de ocorrência.

[in] pRectLoc

O retângulo de teste de clique, especificado em unidades HIMETRIC , em relação ao canto superior esquerdo do objeto.

[in] lCloseHint

A distância sugerida, em unidades HIMETRIC , que o contêiner considera fechar. Esse valor é uma dica e os objetos podem interpretá-lo de maneira própria. Os objetos também podem usar essa dica para inferir aproximadamente a resolução de saída para escolher a expansão da implementação do teste de ocorrência.

[out] pHitResult

Um ponteiro para retornar informações sobre o hit expresso como valores de enumeração HITRESULT .

Retornar valor

Esse método retorna S_OK com êxito. Outros valores retornados possíveis incluem o seguinte.

Código de retorno Descrição
E_FAIL
Esse método não é implementado para o aspecto solicitado. Em vez disso, use DVASPECT_CONTENT.

Comentários

Os contêineres podem precisar testar se um objeto se sobrepõe a um determinado aspecto de desenho de outro objeto. Eles podem determinar se os objetos se sobrepõem solicitando uma região ou pelo menos um retângulo delimitador do aspecto em questão. No entanto, uma maneira mais rápida de fazer isso é chamar IViewObjectEx::QueryHitRect para perguntar ao objeto se um determinado retângulo cruza um de seus aspectos de desenho.

Nota Ao contrário de IViewObjectEx::QueryHitPoint, esse método não retorna HITRESULT_TRANSPARENT ou HITRESULT_CLOSE. Ele é estritamente atingido ou perdido, retornando HITRESULT_OUTSIDE se nenhum ponto no retângulo for atingido e HITRESULT_HIT se pelo menos um ponto no retângulo for um hit.
 

Anotações aos implementadores

Um objeto que dá suporte a IViewObjectEx é necessário para implementar esse método pelo menos para o aspecto DVASPECT_CONTENT. O objeto não deve tomar nenhuma outra ação em resposta a esse método além de retornar as informações; não deve haver efeitos colaterais. Se houver alguma ambiguidade sobre se um ponto é um hit, por exemplo, devido a coordenadas não convertendo exatamente, o objeto deve retornar HITRESULT_HIT sempre que qualquer ponto no retângulo pode ser um hit no objeto. Ou seja, é permitido reivindicar um hit para um ponto que não é realmente renderizado, mas nunca correto para reivindicar uma falha para qualquer ponto que esteja na imagem renderizada do objeto.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho ocidl.h

Confira também

HITRESULT

Iviewobjectex