Share via


IViewObjectEx::QueryHitRect-Methode (ocidl.h)

Gibt an, ob sich ein Punkt in einem Rechteck innerhalb eines bestimmten Zeichnungsaspekts eines Objekts befindet.

Syntax

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

Parameter

[in] dwAspect

Der angeforderte Zeichnungsaspekt.

[in] pRectBounds

Ein objektgebundenes Rechteck in Clientkoordinaten des enthaltenden Fensters. Dieses Rechteck wird berechnet und vom Container übergeben, sodass das Objekt die Trefferposition sinnvoll interpretieren kann.

[in] pRectLoc

Das Treffertestrechteck, das in HIMETRIC-Einheiten relativ zur linken oberen Ecke des Objekts angegeben ist.

[in] lCloseHint

Die vorgeschlagene Entfernung in HIMETRIC-Einheiten , die der Container als nahe betrachtet. Dieser Wert ist ein Hinweis, der von Objekten auf ihre eigene Weise interpretiert werden kann. Objekte können diesen Hinweis auch verwenden, um die Ausgabeauflösung grob abzuleiten, um die Erweiterung der Treffertestimplementierung auszuwählen.

[out] pHitResult

Ein Zeiger auf zurückgegebene Informationen zum Treffer, der als HITRESULT-Enumerationswerte ausgedrückt wird.

Rückgabewert

Diese Methode gibt S_OK bei Erfolg zurück. Weitere mögliche Rückgabewerte:

Rückgabecode Beschreibung
E_FAIL
Diese Methode wird nicht für den angeforderten Aspekt implementiert. Verwenden Sie stattdessen DVASPECT_CONTENT.

Hinweise

Container müssen möglicherweise testen, ob ein Objekt einen bestimmten Zeichnungsaspekt eines anderen Objekts überschneidet. Sie können bestimmen, ob sich die Objekte überschneiden, indem sie eine Region oder mindestens ein umgebendes Rechteck des betreffenden Aspekts anfordern. Eine schnellere Möglichkeit besteht jedoch darin, IViewObjectEx::QueryHitRect aufzurufen, um das Objekt zu fragen, ob ein bestimmtes Rechteck einen seiner Zeichnungsaspekte überschneidet.

Hinweis Im Gegensatz zu IViewObjectEx::QueryHitPoint gibt diese Methode keine HITRESULT_TRANSPARENT oder HITRESULT_CLOSE zurück. Es wird streng getroffen oder verfehlt, HITRESULT_OUTSIDE zurückgegeben, wenn kein Punkt im Rechteck getroffen wird, und HITRESULT_HIT, wenn mindestens ein Punkt im Rechteck ein Treffer ist.
 

Hinweise zu Implementierern

Ein Objekt, das IViewObjectEx unterstützt, ist erforderlich, um diese Methode zumindest für den DVASPECT_CONTENT Aspekt zu implementieren. Das -Objekt sollte als Reaktion auf diese Methode keine andere Aktion ausführen, als die Informationen zurückzugeben. es sollten keine Nebenwirkungen auftreten. Wenn unklar ist, ob ein Punkt ein Treffer ist, sollte das Objekt für instance aufgrund von Koordinaten, die nicht genau konvertiert werden, HITRESULT_HIT zurückgeben, wenn ein Punkt im Rechteck ein Treffer auf das Objekt sein könnte. Das heißt, es ist zulässig, einen Treffer für einen Punkt zu beanspruchen, der nicht tatsächlich gerendert, aber nie richtig ist, um einen Fehler für einen Punkt zu beanspruchen, der sich im gerenderten Bild des Objekts befindet.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile ocidl.h

Weitere Informationen

HITRESULT

IViewObjectEx