之前测试使用dgwulm.ttf字体(GPS软件WolfNCU中带的),发现了一些添加新字体的时候可能被忽视的问题。

在WINCE系统中,除了将字体文件加入到系统内核NK之外,还可以动态的方式添加新字体,使用函数AddFontResourceRemoveFontResource,以及CreateFontIndirect等函数。

使用方式类似:

/////////////////////////////////////////////////////////////////////////////////

// 加载新字体

if (0 != AddFontResource(CUSTOM_FONT))
 {
  ::SendMessage( HWND_BROADCAST, WM_FONTCHANGE, 0, 0);
 }

// 卸载新字体

if (0 != RemoveFontResource(CUSTOM_FONT))
 {
  ::SendMessage( HWND_BROADCAST, WM_FONTCHANGE, 0, 0);
 }

/////////////////////////////////////////////////////////////////////////////////

而在LOGFONT结构中,其中两个结构体成员比较重要,否则有可能创建新字体结构不好看或者失败,分别是lfQualitylfCharSet

其中lfQuality尽量设置为CLEARTYPE_QUALITY,否则会出现锯齿状。

lfCharSet一定要设置正确ASCII_CHARSET,GB2312_CHARSET,而dgwulm字体是韩文的,所以要设置为JOHAB_CHARSET,否则字体将创建不成功。

 

posted on 2009-05-31 14:35  xinshine  阅读(5922)  评论(1编辑  收藏  举报