IDWriteTextLayout::HitTestTextRange メソッド (dwrite.h)
アプリケーションは、この関数を呼び出して、テキスト位置の範囲に対応するヒット テスト メトリックのセットを取得します。 メインの使用法の 1 つは、テキスト文字列の強調表示の選択を実装することです。
hitTestMetrics のバッファー サイズが小さすぎて、関数によって計算されるすべての領域を保持するには、HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER) と同じE_NOT_SUFFICIENT_BUFFERが返されます。 この場合、関数は出力値 *actualHitTestMetricsCount を計算されるジオメトリの数に設定します。
アプリケーションは、より大きなサイズの新しいバッファーを割り当て、関数を再度呼び出す役割を担います。
maxHitTestMetricsCount の初期値として使用するのに適した値は、次の式から計算できます。
maxHitTestMetricsCount = lineCount * maxBidiReorderingDepth
ここで、lineCount は、出力引数 *actualLineCount の値 (関数 IDWriteTextLayout::GetLineLengths から) と、出力引数 *textMetrics の DWRITE_TEXT_METRICS 構造体 (関数 IDWriteFactory::CreateTextLayout から) の maxBidiReorderingDepth 値から取得されます。
構文
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 用プラットフォーム更新プログラム [デスクトップ アプリ |UWP アプリ] |
サポートされている最小のサーバー | Windows Server 2008 R2、Windows Server 2008 SP2 および Windows Server 2008 用プラットフォーム更新プログラム [デスクトップ アプリ |UWP アプリ] |
対象プラットフォーム | Windows |
ヘッダー | dwrite.h |
Library | Dwrite.lib |
[DLL] | Dwrite.dll |