Método IDWriteTextLayout::HitTestTextRange (dwrite.h)
La aplicación llama a esta función para obtener un conjunto de métricas de prueba de posicionamiento correspondientes a un intervalo de posiciones de texto. Uno de los usos principales es implementar la selección de resaltado de la cadena de texto.
La función devuelve E_NOT_SUFFICIENT_BUFFER, que es equivalente a HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER), cuando el tamaño del búfer de hitTestMetrics es demasiado pequeño para contener todas las regiones calculadas por la función. En esta situación, la función establece el valor de salida *actualHitTestMetricsCount en el número de geometrías calculadas.
La aplicación es responsable de asignar un nuevo búfer de mayor tamaño y volver a llamar a la función.
Un buen valor que se usará como valor inicial para maxHitTestMetricsCount se puede calcular a partir de la ecuación siguiente:
maxHitTestMetricsCount = lineCount * maxBidiReorderingDepth
donde lineCount se obtiene del valor del argumento de salida *actualLineCount (de la función IDWriteTextLayout::GetLineLengths) y del valor maxBidiReorderingDepth de la estructura DWRITE_TEXT_METRICS del argumento de salida *textMetrics (de la función IDWriteFactory::CreateTextLayout).
HRESULT HitTestTextRange(
UINT32 textPosition,
UINT32 textLength,
FLOAT originX,
FLOAT originY,
[out, optional] DWRITE_HIT_TEST_METRICS *hitTestMetrics,
UINT32 maxHitTestMetricsCount,
[out] UINT32 *actualHitTestMetricsCount
);
textPosition
Tipo: UINT32
Primera posición de texto del intervalo especificado.
textLength
Tipo: UINT32
Número de posiciones del intervalo especificado.
originX
Tipo: FLOAT
Ubicación del píxel de origen X a la izquierda del cuadro de diseño. Este desplazamiento se agrega a las métricas de prueba de posicionamiento devueltas.
originY
Tipo: FLOAT
Ubicación del píxel de origen Y en la parte superior del cuadro de diseño. Este desplazamiento se agrega a las métricas de prueba de posicionamiento devueltas.
[out, optional] hitTestMetrics
Tipo: DWRITE_HIT_TEST_METRICS*
Cuando este método vuelve, contiene un puntero a un búfer de la geometría de salida que incluye completamente el intervalo de posición especificado. El búfer debe ser al menos tan grande como maxHitTestMetricsCount.
maxHitTestMetricsCount
Tipo: UINT32
El número máximo de cuadros que hitTestMetrics podría contener en su memoria de búfer.
[out] actualHitTestMetricsCount
Tipo: UINT32*
Número real de geometrías que hitTestMetrics contiene en su memoria de búfer.
Tipo: HRESULT
Si este método se realiza correctamente, devuelve S_OK. De lo contrario, devuelve un código de error de HRESULT.
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows 7, Windows Vista con SP2 y Platform Update para Windows Vista [aplicaciones de escritorio | Aplicaciones para UWP] |
Servidor mínimo compatible | Windows Server 2008 R2, Windows Server 2008 con SP2 y Actualización de plataforma para Windows Server 2008 [aplicaciones de escritorio | Aplicaciones para UWP] |
Plataforma de destino | Windows |
Encabezado | dwrite.h |
Library | Dwrite.lib |
Archivo DLL | Dwrite.dll |