Share via


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

参照

IDWriteTextLayout