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 |