如何在 Rich Edit 控制件中使用字型系結
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 哥特式 | 9 | MS P 哥特式 | 10 |
韓文 | 古利姆 | 9 | 古利姆 | 9 |
簡體中文 | Simsun | 9 | SimSun | 10 |
繁體中文 | PMingLiU | 9 | PMingLiU | 9 |
泰文 | MS Sans Serif | 8 | 塔霍馬文 | 14 |
符號 | Wingdings | 8 | Wingdings | 10 |
梵文字母 | 莽 | 8 | 莽 | 10 |
坦米爾文 | 拉塔 | 8 | 拉塔 | 10 |
喬治亞文、亞美尼亞文 | Arial Unicode | 8 | Arial Unicode | 10 |
因此,在預設字型系結數據表中(專案具有字元集、字型名稱和大小),Rich Edit 允許ANSI_CHARSET比對數個字元集,而適當的字元集會以一對一的方式比對其他字型。 更精確地說,只要找不到其他替代方案,豐富編輯就會使用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 成員的值。
相關主題