Freigeben über


IDWriteTextLayout::HitTestTextRange-Methode (dwrite.h)

Die Anwendung ruft diese Funktion auf, um eine Reihe von Treffertestmetriken abzurufen, die einem Bereich von Textpositionen entsprechen. Eine der Standard Verwendungen besteht darin, die Hervorhebungsauswahl der Textzeichenfolge zu implementieren.

Die Funktion gibt E_NOT_SUFFICIENT_BUFFER zurück, was HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER) entspricht, wenn die Puffergröße von hitTestMetrics zu klein ist, um alle von der Funktion berechneten Regionen aufzunehmen. In diesem Fall legt die Funktion den Ausgabewert *actualHitTestMetricsCount auf die Anzahl der berechneten Geometrien fest.

Die Anwendung ist dafür verantwortlich, einen neuen Puffer von größerer Größe zuzuweisen und die Funktion erneut aufzurufen.

Ein guter Wert, der als Anfangswert für maxHitTestMetricsCount verwendet werden kann, kann aus der folgenden Gleichung berechnet werden:

maxHitTestMetricsCount = lineCount * maxBidiReorderingDepth

dabei wird lineCount aus dem Wert des Ausgabearguments *actualLineCount (aus der Funktion IDWriteTextLayout::GetLineLengths) und des maxBidiReorderingDepth-Werts aus der DWRITE_TEXT_METRICS-Struktur des Ausgabearguments *textMetrics (aus der Funktion IDWriteFactory::CreateTextLayout) abgerufen.

Syntax

HRESULT HitTestTextRange(
                  UINT32                  textPosition,
                  UINT32                  textLength,
                  FLOAT                   originX,
                  FLOAT                   originY,
  [out, optional] DWRITE_HIT_TEST_METRICS *hitTestMetrics,
                  UINT32                  maxHitTestMetricsCount,
  [out]           UINT32                  *actualHitTestMetricsCount
);

Parameter

textPosition

Typ: UINT32

Die erste Textposition des angegebenen Bereichs.

textLength

Typ: UINT32

Die Anzahl der Positionen des angegebenen Bereichs.

originX

Typ: FLOAT

Die Ursprungspixelposition X auf der linken Seite des Layoutfelds. Dieser Offset wird den zurückgegebenen Treffertestmetriken hinzugefügt.

originY

Typ: FLOAT

Die Position des Ursprungspixels Y am oberen Rand des Layoutfelds. Dieser Offset wird den zurückgegebenen Treffertestmetriken hinzugefügt.

[out, optional] hitTestMetrics

Typ: DWRITE_HIT_TEST_METRICS*

Wenn diese Methode zurückgibt, enthält einen Zeiger auf einen Puffer der Ausgabegeometrie, der den angegebenen Positionsbereich vollständig umschließt. Der Puffer muss mindestens so groß wie maxHitTestMetricsCount sein.

maxHitTestMetricsCount

Typ: UINT32

Maximale Anzahl von Feldern, die hitTestMetrics im Pufferspeicher enthalten kann.

[out] actualHitTestMetricsCount

Typ: UINT32*

Die tatsächliche Anzahl der Geometrien, die hitTestMetrics im Pufferspeicher enthält.

Rückgabewert

Typ: HRESULT

Wenn diese Methode erfolgreich ist, wird S_OK zurückgegeben. Andernfalls wird ein Fehlercode HRESULT zurückgegeben.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 7, Windows Vista mit SP2 und Plattformupdate für Windows Vista [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 R2, Windows Server 2008 mit SP2 und Plattformupdate für Windows Server 2008 [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile dwrite.h
Bibliothek Dwrite.lib
DLL Dwrite.dll

Weitere Informationen

Idwritetextlayout