Condividi tramite


Metodo IViewObjectEx::QueryHitRect (ocidl.h)

Indica se un punto di un rettangolo si trova all'interno di un determinato aspetto di disegno di un oggetto.

Sintassi

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

Parametri

[in] dwAspect

Aspetto del disegno richiesto.

[in] pRectBounds

Rettangolo di delimitazione dell'oggetto nelle coordinate client della finestra contenitore. Questo rettangolo viene calcolato e passato dal contenitore in modo che l'oggetto possa interpretare in modo significativo la posizione di hit.

[in] pRectLoc

Rettangolo hit test, specificato in unità HIMETRIC , rispetto all'angolo superiore sinistro dell'oggetto.

[in] lCloseHint

Distanza suggerita, in unità HIMETRIC , che il contenitore considera vicino. Questo valore è un hint e gli oggetti possono interpretarlo in modo personalizzato. Gli oggetti possono anche usare questo hint per dedurre approssimativamente la risoluzione dell'output per scegliere l'estensione dell'implementazione dell'hit test.

[out] pHitResult

Puntatore a informazioni restituite sull'hit espresso come valori di enumerazione HITRESULT .

Valore restituito

Questo metodo restituisce S_OK se l'operazione ha esito positivo. Gli altri valori restituiti possibili includono i seguenti:

Codice restituito Descrizione
E_FAIL
Questo metodo non viene implementato per l'aspetto richiesto. Usare invece DVASPECT_CONTENT.

Commenti

I contenitori possono dover verificare se un oggetto si sovrappone a un determinato aspetto di disegno di un altro oggetto. Possono determinare se gli oggetti si sovrappongono richiedendo un'area o almeno un rettangolo di delimitazione dell'aspetto in questione. Tuttavia, un modo più rapido per eseguire questa operazione consiste nel chiamare IViewObjectEx::QueryHitRect per chiedere all'oggetto se un determinato rettangolo interseca uno dei relativi aspetti di disegno.

Nota A differenza di IViewObjectEx::QueryHitPoint, questo metodo non restituisce HITRESULT_TRANSPARENT o HITRESULT_CLOSE. Viene raggiunto o perso rigorosamente, restituendo HITRESULT_OUTSIDE se non viene raggiunto alcun punto nel rettangolo e HITRESULT_HIT se almeno un punto nel rettangolo è un hit.
 

Note per gli implementatori

Un oggetto che supporta IViewObjectEx è necessario per implementare questo metodo almeno per l'aspetto DVASPECT_CONTENT. L'oggetto non deve eseguire alcuna altra azione in risposta a questo metodo diverso da per restituire le informazioni; non dovrebbe esserci alcun effetto collaterale. Se si verifica un'ambiguità sul fatto che un punto sia un hit, ad esempio a causa di coordinate che non vengono convertite esattamente, l'oggetto deve restituire HITRESULT_HIT ogni volta che un punto del rettangolo potrebbe essere un hit sull'oggetto. Ciò significa che è consentito richiedere un hit per un punto di cui non viene effettivamente eseguito il rendering, ma non è mai corretto dichiarare un mancato riscontro per qualsiasi punto nell'immagine sottoposta a rendering dell'oggetto.

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione ocidl.h

Vedi anche

HITRESULT

IViewObjectEx