複雜的腳本處理
以下是顯示及處理文字以支援精細印刷樣式效果或複雜字集的選項:
- 文字函數
- 編輯控制項
- 豐富的編輯控制項
- Uniscribe
您選擇的選項取決於下列因素:
- 文字或腳本的類型。
- 例如,實作模型是由應用程式斷行的文字配置和處理。
- 現有應用程式的更新與新應用程式的建立。
一般而言,執行相對簡單腳本處理的應用程式可以選擇任何處理複雜字集的選項。 不過,若要完全控制複雜的腳本處理,建議使用 Uniscribe。
使用文字函式處理複雜的腳本
使用大部分純文字的應用程式,也就是使用相同字樣、粗細、色彩等的文字,使用標準文字函式來撰寫文字和測量行長度,例如 TextOut、 ExtTextOut、 TabbedTextOut、 DrawText和 GetTextExtentExPoint。 這些函式支援處理複雜的腳本和精細印刷樣式效果。 如需詳細資訊,請參閱 字型和文字。
一般而言,對處理複雜字集的應用程式而言,標準文字支援是透明的。 不過,您應該注意撰寫支援精細印刷樣式和處理複雜字集的應用程式時,要遵循的一些特定規則:
- 您的應用程式應該將字元儲存在緩衝區中,並一次顯示整行文字,而不是呼叫每個字元上的 ExtTextOut ,因為它是由使用者輸入。 此機制可讓進階文字成形模組使用內容來重新排序並正確產生 圖像 。
- 應用程式應該使用 GetTextExtentExPoint 來判斷行長度,而不是從快取字元寬度計算行長度,因為字元的寬度可能會因內容而異。
- 應用程式應該選擇性地新增對由右至左讀取順序和靠右對齊的支援。
- 複雜字集或精細印刷樣式所需的重新排序和關聯式處理,需要大幅提升簡單腳本的基本文字顯示處理。 因此,為了避免效能問題,您的應用程式不應該在顯示結果並將控制權傳回給使用者之前處理大量的文字。
使用編輯控制項處理複雜的腳本
標準 Windows 編輯控制項已擴充以支援多語系文字和複雜字集。 擴充支援包括輸入和顯示,以及在字元叢集上正確的游標移動,例如泰文和 Devanagari 腳本。 如需詳細資訊,請參閱 編輯控制項。
使用豐富編輯控制項的複雜字集處理
Rich Edit 3.0 是介面的較高層級集合,利用 Uniscribe 將文字配置應用程式與特定腳本的複雜度隔離。 Rich Edit 是應用程式顯示覆雜腳本的最簡單方式,即使其主要用途不一定是文字配置。 Rich Edit 提供快速、多用途的豐富 Unicode 多語系文字和簡單純文字的編輯。 它包含廣泛的訊息和 COM 介面、文字編輯、格式化、換行、簡單表格配置、垂直文字配置、雙向文字配置、索引和泰文支援、編輯使用者介面與 Microsoft Word,以及文字物件模型介面。
除了 Rich Edit 介面之外,應用程式可以使用 Rich Edit TextOut 函式來自動剖析、圖形、位置和斷線。 如需詳細資訊,請參閱 Rich Edit Controls。
使用 Uniscribe 的複雜字集處理
Uniscribe 提供最廣泛的支援來處理涉及精細印刷樣式效果和複雜字集的文字。 它支援在阿拉伯文、Devanagari 和泰文等腳本中找到的複雜規則。 它會處理由右至左撰寫的腳本,例如阿拉伯文和希伯來文,並支援混合腳本。 Uniscribe 也會公開可供應用程式用來控制精細印刷樣式效果的 OpenType 字型功能。 如需詳細資訊,請參閱 處理複雜字集。
相關主題