在 windows CE 6 下,我使用 AddFontResource() 将 arialuni.ttf(Arial Unicode MS,版本 1.0.1)加载到系统字体列表中,我们支持的所有远东语言(日语、韩语、简体中文和繁体中文)都会出现当文本使用字体绘制到屏幕时正确。
在 Windows Compact 7 下,相同的技术不会在屏幕上产生远东字符。我得到的是空框,而不是屏幕上出现的实际字符,这是我在字体不支持必要的字符集时看到的。
我对两个平台使用相同的代码和相同的字体文件。我已经调试了代码以验证 a) 操作系统声称字体实际上是通过 AddFontResource() 加载到系统字体列表中的,b) 操作系统声称字体在实际绘制文本之前加载到屏幕设备上下文中, 和 c) 实际的远东字符在我移交给 DrawText() 的缓冲区中。这与在 CE6 下工作的东西完全相同。
奇怪的是,无论我是否加载 arialuni.ttf,我们支持的东欧语言(俄语、捷克语、保加利亚语)都能在 Windows Compact 7 上正确显示。注册表说默认系统字体是 Tahoma,但我认为 Tahoma 不支持除了基本的西欧语言之外的任何东西。它不在CE6之下。
我宁愿不添加或使用其他字体。Arialuni.ttf 几乎支持我们可能支持的每一种语言,而且它已经是我们用于非西欧语言的唯一一种。
已经安装了其他几种真字体,因此该选项(而不是光栅字体)已经在我们的操作系统版本中。
- 这个 arialuni.ttf 是否与 Windows Compact 7 兼容?
- 您是否必须在操作系统映像中构建一些东西来添加对远东语言的支持,以使这种类型的字体加载和文本绘制工作?
- 我对 Tahoma 有什么误解吗?它现在支持东欧语言?
- 我错过了什么?
感谢您的任何想法。