scriptXtoCP 函式 (usp10.h)
從執行的 x 位移產生邏輯字元叢集的前置或尾端邊緣。
語法
HRESULT ScriptXtoCP(
[in] int iX,
[in] int cChars,
[in] int cGlyphs,
[in] const WORD *pwLogClust,
[in] const SCRIPT_VISATTR *psva,
[in] const int *piAdvance,
[in] const SCRIPT_ANALYSIS *psa,
[out] int *piCP,
[out] int *piTrailing
);
參數
[in] iX
位移,以邏輯單位表示,從 SCRIPT_ANALYSIS 結構之 fLogicalOrder 成員所指定的執行結尾。
[in] cChars
執行中的邏輯代碼點計數。
[in] cGlyphs
執行中的字元計數。
[in] pwLogClust
邏輯叢集陣列的指標。
[in] psva
包含圖像視覺屬性 之SCRIPT_VISATTR 結構的數位指標。
[in] piAdvance
進階寬度陣列的指標。
[in] psa
SCRIPT_ANALYSIS 結構的指標。 fLogicalOrder 成員表示 TRUE 表示使用執行的前置邊緣,或 FALSE 表示使用尾端邊緣。
[out] piCP
緩衝區的指標,此函式會擷取對應至 x 座標的字元位置。
[out] piTrailing
緩衝區的指標,此緩衝區會從邏輯字元的前置邊緣擷取距離,以字碼點為單位到 iX 位置。 如果此值為 0, 則 iX 位置位於邏輯字元的前置邊緣。 如需詳細資訊,請參閱<備註>一節。
傳回值
若成功,即傳回 0。 如果函式不成功,函式會傳回非零 HRESULT 值。 應用程式可以使用 SUCCEEDED 和 FAILED 宏來測試傳回值。
備註
傳遞至此函式的值通常是先前呼叫其他 Uniscribe 函式的結果。 如需詳細資訊,請參閱 管理插入號放置和點擊測試 。
邏輯字元的開頭和尾端邊緣取決於執行中文字的方向, (由左至右或由右至左) 。 針對從左至右的方向,前置邊緣與左邊緣相同。 針對從右至左的方向,前置邊緣是右邊緣。
對於將插入號傳統放在叢集中間的腳本,例如阿拉伯文和希伯來文,擷取的字元位置可以是行中的任何字碼點。 在此情況下, piTrailing 參數會設定為 0 或 1。
對於以傳統方式貼齊至叢集界限的插入號的腳本,擷取的字元位置一律是叢集中第一個字碼點的位置, (以邏輯方式) 。 piTrailing 參數會設定為 0 或叢集中的代碼點數目。
滑鼠點擊的適當插入號位置一律是擷取的字元位置加上 piTrailing所指示的距離。
當 iX 指出執行外的位置時, ScriptXtoCP 的作用就如同執行的每個結尾都有額外的無限大字元。 這會導致下表所示的行為。
執行) 外部的iX位置 ( | 結果 |
---|---|
在執行之前,也就是:如果執行是由左至右,則為 iX< 0,如果 run 為由右至左, 則為進階的iX>= 總和 | piCP 的值是 -1,而 piTrailing 的值是 0 |
執行之後, 也就是:>如果 run 是由左至右的進階總和,則為 iX 0;如果執行為由右至左, 則為 iX< 0 | piCP 的值是 cChars 的值,而 piTrailing 的值是 1 |
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 2000 Professional [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限桌面應用程式] |
目標平台 | Windows |
標頭 | usp10.h |
程式庫 | Usp10.lib |
Dll | Usp10.dll |
可轉散發套件 | Windows Me/98/95 上的 Internet Explorer 5 或更新版本 |