Metodo IDWriteTextLayout::HitTestTextRange (dwrite.h)
L'applicazione chiama questa funzione per ottenere un set di metriche di hit test corrispondenti a un intervallo di posizioni di testo. Uno degli utilizzi principali consiste nell'implementare la selezione dell'evidenziazione della stringa di testo.
La funzione restituisce E_NOT_SUFFICIENT_BUFFER, equivalente a HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER), quando la dimensione del buffer di hitTestMetrics è troppo piccola per contenere tutte le aree calcolate dalla funzione. In questo caso, la funzione imposta il valore di output *actualHitTestMetricsCount sul numero di geometrie calcolate.
L'applicazione è responsabile dell'allocazione di un nuovo buffer di dimensioni maggiori e della chiamata di nuovo alla funzione.
Un valore valido da usare come valore iniziale per maxHitTestMetricsCount può essere calcolato dall'equazione seguente:
maxHitTestMetricsCount = lineCount * maxBidiReorderingDepth
dove lineCount viene ottenuto dal valore dell'argomento di output *actualLineCount (dalla funzione IDWriteTextLayout::GetLineLengths) e dal valore maxBidiReorderingDepth dalla struttura DWRITE_TEXT_METRICS dell'argomento di output *textMetrics (dalla funzione IDWriteFactory::CreateTextLayout).
Sintassi
HRESULT HitTestTextRange(
UINT32 textPosition,
UINT32 textLength,
FLOAT originX,
FLOAT originY,
[out, optional] DWRITE_HIT_TEST_METRICS *hitTestMetrics,
UINT32 maxHitTestMetricsCount,
[out] UINT32 *actualHitTestMetricsCount
);
Parametri
textPosition
Tipo: UINT32
Prima posizione di testo dell'intervallo specificato.
textLength
Tipo: UINT32
Numero di posizioni dell'intervallo specificato.
originX
Tipo: FLOAT
Posizione del pixel di origine X a sinistra della casella di layout. Questo offset viene aggiunto alle metriche di hit test restituite.
originY
Tipo: FLOAT
Posizione del pixel di origine Y nella parte superiore della casella di layout. Questo offset viene aggiunto alle metriche di hit test restituite.
[out, optional] hitTestMetrics
Tipo: DWRITE_HIT_TEST_METRICS*
Quando termina, questo metodo contiene un puntatore a un buffer della geometria di output che racchiude completamente l'intervallo di posizioni specificato. Il buffer deve avere dimensioni pari almeno a maxHitTestMetricsCount.
maxHitTestMetricsCount
Tipo: UINT32
Il numero massimo di caselle hitTestMetrics può contenere nella memoria del buffer.
[out] actualHitTestMetricsCount
Tipo: UINT32*
Numero effettivo di geometrie che hitTestMetrics contiene nella memoria del buffer.
Valore restituito
Tipo: HRESULT
Se questo metodo ha esito positivo, restituisce S_OK. In caso contrario, restituisce un codice di errore HRESULT .
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 7, Windows Vista con SP2 e Aggiornamento della piattaforma per Windows Vista [app desktop | App UWP] |
Server minimo supportato | Windows Server 2008 R2, Windows Server 2008 con SP2 e Platform Update per Windows Server 2008 [app desktop | App UWP] |
Piattaforma di destinazione | Windows |
Intestazione | dwrite.h |
Libreria | Dwrite.lib |
DLL | Dwrite.dll |