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 |