WinCE系统字体的设置是通过注册表实现的,目前提供以下几种系统字体的设置:
系统字体:HKEY_LOCAL_MACHINE/SYSTEM/GDI/SysFnt
菜单字体:HKEY_LOCAL_MACHINE/SYSTEM/GWE/Menu/BarFnt
弹出窗口字体:HKEY_LOCAL_MACHINE/SYSTEM/GWE/Menu/PopFnt
内存不足错误窗口字体:HKEY_LOCAL_MACHINE/SYSTEM/GWE/OOMFnt
每一种系统字体的设置子项都是一样的,如下:
"Nm": 要使用字体的名字,比如Arial,Georgia等
"Ht": 字体的高度
"It": 是否斜体,0表示正常,1表示斜体
"Wt": 加粗程度
"CS": 所使用的字符级,默认是0,为ANSI_CHARSET,字符集在wingdi.h中定义
在使用一种字体之前,要确认你的WinCE系统支持这种字体,如果不支持,你需要添加字体,在Catalog Items View中选择Core OS->Fonts,然后选择要添加的字体就可以了,需要重新编译整个WinCE工程。
编译完工程之后,打开release目录下编译好的工程中的project.reg文件,添加系统字体设置的配置信息如下:
[HKEY_LOCAL_MACHINE/SYSTEM/GDI/SYSFNT]
"Nm"="Georgia" 字体名字
"Ht"=dword:fffffff4 字体高度
"It"=dword:1 斜体
"Wt"=dword:190
"CS"=dword:0
[HKEY_LOCAL_MACHINE/SYSTEM/GWE/Menu/BarFnt]
"Nm"="Tahoma"
"Ht"=dword:fffffff6
"It"=dword:0
"Wt"=dword:2BC
"CS"=dword:0
[HKEY_LOCAL_MACHINE/SYSTEM/GWE/Menu/PopFnt]
"Nm"="Tahoma"
"Ht"=dword:fffffff4
"It"=dword:0
"Wt"=dword:190
"CS"=dword:0
[HKEY_LOCAL_MACHINE/SYSTEM/GWE/OOMFnt]
"Nm"="Tahoma"
"Ht"=dword:fffffff4
"It"=dword:1
"Wt"=dword:190
"CS"=dword:0
这段配置只是改变了系统字体的名字,大小并支持斜体,然后重新make image一下就可以了。具体效果如下:
可以看到字体已经改变,WinCE还支持ClearType字体,具体的实现只需要添加如下注册表配置:
[HKEY_LOCAL_MACHINE/SYSTEM/GDI/Cleartype]
"Default"=dword:00000001
重新Make image以后,运行效果如下:
ClearType字体是微软的技术,可以使字体看上去更加清晰圆滑,从上面的两张图片效果确实可以比较出来。