IDWriteTextLayout::HitTestTextRange 메서드(dwrite.h)
애플리케이션은 이 함수를 호출하여 텍스트 위치 범위에 해당하는 적중 테스트 메트릭 집합을 가져옵니다. 기본 사용 중 하나는 텍스트 문자열의 강조 표시 선택을 구현하는 것입니다.
함수는 hitTestMetrics의 버퍼 크기가 너무 작아 함수에서 계산한 모든 영역을 보유할 수 없는 경우 HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER)와 동일한 E_NOT_SUFFICIENT_BUFFER 반환합니다. 이 경우 함수는 출력 값 *actualHitTestMetricsCount를 계산된 기하 도형 수로 설정합니다.
애플리케이션은 더 큰 크기의 새 버퍼를 할당하고 함수를 다시 호출해야 합니다.
maxHitTestMetricsCount의 초기 값으로 사용할 좋은 값은 다음 수식에서 계산할 수 있습니다.
maxHitTestMetricsCount = lineCount * maxBidiReorderingDepth
여기서 lineCount는 출력 인수 *actualLineCount의 값( IDWriteTextLayout::GetLineLengths 함수에서) 및 출력 인수 *textMetrics의 DWRITE_TEXT_METRICS 구조에서 maxBidiReorderingDepth 값( 함수 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
형식: UINT32
지정된 범위의 첫 번째 텍스트 위치입니다.
textLength
형식: UINT32
지정된 범위의 위치 수입니다.
originX
형식: FLOAT
레이아웃 상자 왼쪽의 원본 픽셀 위치 X입니다. 이 오프셋은 반환된 적중 테스트 메트릭에 추가됩니다.
originY
형식: FLOAT
레이아웃 상자 맨 위에 있는 원본 픽셀 위치 Y입니다. 이 오프셋은 반환된 적중 테스트 메트릭에 추가됩니다.
[out, optional] hitTestMetrics
이 메서드가 반환될 때 는 지정된 위치 범위를 완전히 묶는 출력 기하 도형의 버퍼에 대한 포인터를 포함합니다. 버퍼는 maxHitTestMetricsCount만큼 커야 합니다.
maxHitTestMetricsCount
형식: UINT32
hitTestMetrics가 버퍼 메모리에 보유할 수 있는 최대 상자 수입니다.
[out] actualHitTestMetricsCount
형식: UINT32*
버퍼 메모리에 있는 hitTestMetrics의 실제 기하 도형 수입니다.
반환 값
형식: HRESULT
메서드가 성공하면 S_OK를 반환하고, 성공하지 않으면 HRESULT 오류 코드를 반환합니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 7, Windows Vista SP2 및 Windows Vista용 플랫폼 업데이트가 포함된 Windows Vista [데스크톱 앱 | UWP 앱] |
지원되는 최소 서버 | Windows Server 2008 R2, Windows Server 2008 SP2 및 Windows Server 2008용 플랫폼 업데이트 [데스크톱 앱 | UWP 앱] |
대상 플랫폼 | Windows |
헤더 | dwrite.h |
라이브러리 | Dwrite.lib |
DLL | Dwrite.dll |