IDWriteTextLayout::HitTestTextRange メソッド
アプリケーションは、この関数を呼び出し、特定の範囲のテキスト位置に対応する一連のヒット テスト メトリックを取得します。主な使用方法の 1 つとして、テキスト文字列の強調表示を実装します。hitTestMetrics のバッファー サイズが小さすぎて、この関数によって計算されるすべての領域を保持できない場合、この関数は HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER) に相当する E_NOT_SUFFICIENT_BUFFER を返します。この場合、関数によって *actualHitTestMetricsCount という出力値が、計算されたジオメトリの数に設定されます。このアプリケーションは、より大きいサイズの新しいバッファーを割り当てて、もう一度関数を呼び出します。maxHitTestMetricsCount の初期値として使用するのに適した値は、数式 maxHitTestMetricsCount = lineCount * maxBidiReorderingDepth で計算できます。この場合、lineCount は (IDWriteTextLayout::GetLineLengths 関数の) 出力引数 *actualLineCount の値から取得され、maxBidiReorderingDepth の値は (IDWriteFactory::CreateTextLayout 関数の) 出力引数 *textMetrics の DWRITE_TEXT_METRICS 構造体から取得されます。
構文
virtual HRESULT HitTestTextRange(
UINT32 textPosition,
UINT32 textLength,
FLOAT originX,
FLOAT originY,
[out, optional] DWRITE_HIT_TEST_METRICS * hitTestMetrics,
UINT32 maxHitTestMetricsCount,
[out] UINT32 * actualHitTestMetricsCount
) = 0;
パラメーター
textPosition
指定された範囲の最初のテキスト位置。textLength
指定された範囲の位置の数。originX
レイアウト ボックスの左側にある原点のピクセル位置 X。このオフセットは、返されるヒット テスト メトリックに追加されます。originY
レイアウト ボックスの上部にある原点のピクセル位置 Y。このオフセットは、返されるヒット テスト メトリックに追加されます。hitTestMetrics [out, optional]
このメソッドが返されるときに、指定された位置範囲を完全に囲む出力ジオメトリのバッファーへのポインターが格納されます。バッファーは、少なくとも maxHitTestMetricsCount と同じ大きさにする必要があります。maxHitTestMetricsCount
hitTestMetrics のバッファー メモリに保持できるボックスの最大数。actualHitTestMetricsCount [out]
hitTestMetrics のバッファー メモリに保持する実際のジオメトリの数。
戻り値
メソッドが成功した場合は、S_OK が返されます。 それ以外の場合は、エラー コードが返されます。HRESULT.
要件
クライアントの最小要件 |
Windows 7, Windows Vista SP2 および Windows Vista 用のプラットフォーム更新プログラム |
サーバーの最小要件 |
Windows Server 2008 R2, Windows Server 2008 SP2 および Windows Server 2008 用のプラットフォーム更新プログラム |
ヘッダー |
Dwrite.h |
ライブラリ |
Dwrite.lib |
DLL |
Dwrite.dll |