【转载】WinCE系统字体的设置

时间:2024-02-23 22:31:11

转载自:http://blog.csdn.net/nanjianhui/article/details/5502871

 

确实很久没有写Blog了,感觉有些对不住曾经看我blog的朋友。刚从美国回来,由于项目原因,春节都在美国工作,现在有点时间,先写一篇简单的,介绍一下WinCE字体的设置。

 

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":           要使用字体的名字,比如ArialGeorgia

"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字体是微软的技术,可以使字体看上去更加清晰圆滑,从上面的两张图片效果确实可以比较出来。