WINCE添加新字体需要注意的一些问题

本文介绍了在Windows CE系统中动态加载新字体的方法,包括使用AddFontResource和RemoveFontResource函数进行字体的添加与移除,并强调了LOGFONT结构中的lfQuality和lfCharSet成员对于字体显示质量的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

在WINCE系统中,除了将字体文件加入到系统内核NK之外,还可以动态的方式添加新字体,使用函数AddFontResource、RemoveFontResource,以及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结构中,其中两个结构体成员比较重要,否则有可能创建新字体结构不好看或者失败,分别是lfQuality和lfCharSet。

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值