Condividi tramite


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

Vedi anche

IDWriteTextLayout