Método IDWriteTextLayout::HitTestTextRange (dwrite.h)

O aplicativo chama essa função para obter um conjunto de métricas de teste de clique correspondentes a um intervalo de posições de texto. Um dos main usos é implementar a seleção de realce da cadeia de caracteres de texto.

A função retorna E_NOT_SUFFICIENT_BUFFER, que é equivalente a HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER), quando o tamanho do buffer de hitTestMetrics é muito pequeno para conter todas as regiões calculadas pela função. Nessa situação, a função define o valor de saída *actualHitTestMetricsCount como o número de geometrias calculadas.

O aplicativo é responsável por alocar um novo buffer de maior tamanho e chamar a função novamente.

Um bom valor a ser usado como um valor inicial para maxHitTestMetricsCount pode ser calculado a partir da seguinte equação:

maxHitTestMetricsCount = lineCount * maxBidiReorderingDepth

em que lineCount é obtido do valor do argumento de saída *actualLineCount (da função IDWriteTextLayout::GetLineLengths) e do valor maxBidiReorderingDepth da estrutura DWRITE_TEXT_METRICS do argumento de saída *textMetrics (da função IDWriteFactory::CreateTextLayout).

Sintaxe

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

Parâmetros

textPosition

Tipo: UINT32

A primeira posição de texto do intervalo especificado.

textLength

Tipo: UINT32

O número de posições do intervalo especificado.

originX

Tipo: FLOAT

O local do pixel de origem X à esquerda da caixa de layout. Esse deslocamento é adicionado às métricas de teste de clique retornadas.

originY

Tipo: FLOAT

O local do pixel de origem Y na parte superior da caixa de layout. Esse deslocamento é adicionado às métricas de teste de clique retornadas.

[out, optional] hitTestMetrics

Tipo: DWRITE_HIT_TEST_METRICS*

Quando esse método retorna, contém um ponteiro para um buffer da geometria de saída que inclui totalmente o intervalo de posição especificado. O buffer deve ser pelo menos tão grande quanto maxHitTestMetricsCount.

maxHitTestMetricsCount

Tipo: UINT32

O número máximo de caixas hitTestMetrics pode conter em sua memória de buffer.

[out] actualHitTestMetricsCount

Tipo: UINT32*

O número real de geometrias hitTestMetrics mantém em sua memória de buffer.

Retornar valor

Tipo: HRESULT

Se o método for bem-sucedido, ele retornará S_OK. Caso contrário, ele retornará um código de erro HRESULT.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 7, Windows Vista com SP2 e Atualização de Plataforma para Windows Vista [aplicativos da área de trabalho | Aplicativos UWP]
Servidor mínimo com suporte Windows Server 2008 R2, Windows Server 2008 com SP2 e Platform Update para Windows Server 2008 [aplicativos da área de trabalho | Aplicativos UWP]
Plataforma de Destino Windows
Cabeçalho dwrite.h
Biblioteca Dwrite.lib
DLL Dwrite.dll

Confira também

IDWriteTextLayout