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 值。 應用程式可以使用 SUCCEEDEDFAILED 宏來測試傳回值。

備註

傳遞至此函式的值通常是先前呼叫其他 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 8 開始:若要維持在 Windows 7 上執行的能力,使用 Uniscribe 的模組必須在其連結庫清單中指定 gdi32.lib 之前指定 Usp10.lib。
 

規格需求

需求
最低支援的用戶端 Windows 2000 Professional [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限桌面應用程式]
目標平台 Windows
標頭 usp10.h
程式庫 Usp10.lib
Dll Usp10.dll
可轉散發套件 Windows Me/98/95 上的 Internet Explorer 5 或更新版本

另請參閱

SCRIPT_ANALYSIS

SCRIPT_VISATTR

Uniscribe

Uniscribe 函式