最近的工作需要在文字中嵌入一些小图标,发现最好的解决方法就是自创一些TrueType字体,将小图标当字体处理。
这样做有以下优点:
1.可以和文字混排
2.颜色可以很方便更改
3.支持缩放,并且显示效果没有损失(TrueType字体在放大的时候会自动平滑)。
4.代码统一自然
编辑字体
首先需要找到一款能够修改TrueType字体的软件,比如FontForge, FontCreator等。用字体编辑器打开已有的字体,
如Arial.ttf,寻找一个没有被使用的字体空间,在其中编辑自己想要的形状,然后设置该形状的映射关系,一般将其映射
到Unicode的0xF000 - 0xFFFF空间,保存字体文件,别忘了将字体换一个名称如 My Arial。
使用自创字体
使用函数AddFontResource来注册自己的字体,该函数的参数就是字体文件的路径名称(程序退出的时候别忘了调用
RemoveFontResource来释放该字体)
如果想要显示自创的字体,则只需要将相应的字符设为刚才映射的相应的Unicode值即可,
TCHAR szText[16] = L"/xF001 Volume";
DrawText( hDC, szText, .... );