WinCE系统字体的设置

    技术2022-05-20  43

     

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

     

    今天就写到这里,以后有时间再写。

     

     


    最新回复(0)