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
當這個方法傳回時,會包含輸出幾何緩衝區的指標,完全括住指定的位置範圍。 緩衝區必須至少與 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 |