共用方式為


IDWriteTextLayout::HitTestTextRange 方法 (dwrite.h)

應用程式會呼叫此函式,以取得一組對應至一系列文字位置的點擊測試計量。 其中一個主要用法是實作文字字串的醒目提示選取。

當 hitTestMetrics 的緩衝區大小太小,無法保存函式計算的所有區域時,函式會傳回E_NOT_SUFFICIENT_BUFFER,這相當於HRESULT_FROM_WIN32 (ERROR_INSUFFICIENT_BUFFER) 。 在此情況下,函式會將輸出值 *actualHitTestMetricsCount 設定為計算的幾何數目。

應用程式負責配置大小更大的新緩衝區,並再次呼叫函式。

當做 maxHitTestMetricsCount 的初始值使用的良好值,可能會從下列方程序計算:

maxHitTestMetricsCount = lineCount * maxBidiReorderingDepth

其中 lineCount 是從函式 IDWriteTextLayout::GetLineLengths) 取得的輸出自變數 *actualLineCount (的值,以及從輸出自變數 *textMetrics (的DWRITE_TEXT_METRICS結構取得 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

類型: DWRITE_HIT_TEST_METRICS*

當這個方法傳回時,會包含輸出幾何緩衝區的指標,完全括住指定的位置範圍。 緩衝區必須至少與 maxHitTestMetricsCount 一樣大。

maxHitTestMetricsCount

類型: UINT32

hitTestMetrics 可以保存在其緩衝區內存中的方塊數目上限。

[out] actualHitTestMetricsCount

類型: UINT32*

實際幾何數目 hitTestMetrics 在其緩衝區內存中保留。

傳回值

類型: HRESULT

如果此方法成功,則會傳回 S_OK。 否則,它會傳回 HRESULT 錯誤碼。

規格需求

需求
最低支援的用戶端 適用於 Windows Vista 的 Windows 7、Windows Vista SP2 和平臺更新 [傳統型應用程式 |UWP 應用程式]
最低支援的伺服器 Windows Server 2008 R2、Windows Server 2008 SP2 和 Platform Update for Windows Server 2008 [傳統型應用程式 |UWP 應用程式]
目標平台 Windows
標頭 dwrite.h
程式庫 Dwrite.lib
Dll Dwrite.dll

另請參閱

IDWriteTextLayout