Microsoft Rich Edit 3.0 會根據其內容,將字元集指派給純文本字元。 一些範例包括:
- 希臘字符被分配到 GREEK_CHARSET。
- 會 HANGUL_CHARSET指派韓文符號。
- 如果在附近找到假名字符,漢字會被指派為 SHIFTJIS_CHARSET;如果附近沒有假名字符,則指派為 GB2312_CHARSET。
- 無論任何情況下,非中性 ANSI 字元皆被指派為 ANSI_CHARSET。
注意
豐富的編輯控制件會在內部使用 Unicode,因此此字元集的使用與字型規格中使用的原始字元集不同。 但是 CHARFORMAT 結構中有一個專門為字元集設置的明確位置。
空白和數位等中性字元會根據其內容指派字元集。 例如,被相同字元集的字元包圍的空白,會屬於該字元集。 用於雙向文字的中性字元與數字會以 Unicode 雙向演算法為基礎的方式來指派字元集。
您需要知道的事項
技術
先決條件
- C/C++
- Windows 使用者介面程序設計
操作說明
在 Rich Edit 控制項中使用字型綁定
指派字元集之後,Rich Edit 會向前和向後掃描插入點周圍的文字,以尋找已用於字元集的最接近字型。 如果找不到字元集的字型,Rich Edit 會使用用戶端為該字元集選擇的字型。 如果用戶端尚未指定字元集的字型,Rich Edit 會使用該字元集的預設字型。 如果用戶端想要其他一些字型,用戶端一律可以變更它,但這種方法大部分時間都會運作。 目前的預設字型選擇是以下表為基礎。 請注意,預設字型是依每個進程設定,且 UI 使用和非 UI 使用各有各自的清單。
| 語言 | UI 字型名稱 | UI 字型大小 | 非UI字型名稱 | 非 UI 字型大小 |
|---|---|---|---|---|
| 西方、CE、ME、越南文 | 塔霍馬 | 8 | Arial | 10 |
| 日語 | MS UI Gothic | 9 | MS P 哥特式 | 10 |
| 朝鮮語 | 古利姆 | 9 | 古利姆 | 9 |
| 簡體中文 | Simsun | 9 | SimSun | 10 |
| 繁體中文 | PMingLiU | 9 | PMingLiU | 9 |
| 泰語 | MS Sans Serif | 8 | 塔霍馬文 | 14 |
| 符號 | Wingdings | 8 | Wingdings | 10 |
| Devanagari | 莽 | 8 | 莽 | 10 |
| 泰米爾語 | 拉塔 | 8 | 拉塔 | 10 |
| 喬治亞文、亞美尼亞文 | Arial Unicode | 8 | Arial Unicode | 10 |
因此,在預設字型系結數據表中(專案具有字元集、字型名稱和大小),Rich Edit 允許ANSI_CHARSET比對數個字元集,而適當的字元集會以一對一的方式比對其他字型。 更精確地說,只要找不到其他替代方案,RichEdit 控制就會設定為使用 ANSI_CHARSET。 您將能夠指定比這更細緻的粒度,例如,為阿拉伯文段落分配特定的ARABIC_CHARSET,為希臘文段落指定特定的希臘字型,等等。 如果在文件中找到具有所需字元集印記的字體,在字型綁定的區域之前,也將使用這一更精細的粒度。
請注意,Rich Edit 目前不會在宣告支援字元集但不完整的字型中處理遺漏的字元。 在顯示複雜腳本時,Rich Edit 最終會知道缺少這類字形,但是不會讓後備存儲使用新的字型。 一般而言,操作系統的字型連結功能會達成此目的。
備註
Rich Edit 4.1: 若要設定腳本的預設字型,請使用 CHARFORMAT2呼叫 EM_SETCHARFORMAT,並指定 yHeight、bCharSet、bPitchAndFamily、szFaceName和 lcid 成員的值。 此外,若要取得特定代碼頁的預設字型,請使用 CHARFORMAT2呼叫 EM_GETCHARFORMAT ,並指定 bCharSet 和 lcid 成員的值。
相關主題