![Rank: 8](images/default/star_level3.gif) ![Rank: 8](images/default/star_level3.gif)
- UID
- 872238
|
![](http://images.eccn.com/silabs/silicon_chip_980x60_202203.jpg)
0,/*size*/
36,/*size*/
16,/*width*/
16,/*hight*/
14,/*ascent*/
0x00,0x08,0xff,0xfc,0x04,0x00,0x04,0x00,0x08,0x00,0x08,0x10,0x1f,0xf8,0x00,0x10,
0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x02,0x20,0x01,0x40,0x00,0x80,
/*其它字符*/
…
/*结束*/
0,0,0,0
}*/国标码对应的点阵表*/
/*上表解析:
数据含义与西文表类似,注意字码是双字节国标码*/
UGL_LOCAL const unsigned char *const pageArray[]
{ page0Data,
page1Data,
UGL_NULL
};/*总的点阵资料表*/
/*上表解析:
把分类的点阵资料表汇集成一张表,总表以UGL_NULL结束,注意各个分表是以0,0,0,0结束。
可以把汉字表按GB2312编码的page分类,构建多个汉字分表,然后把分表指针填入该表。当然,也可以做成一个汉字大表,把指针放在该表,甚至也可以把中西文点阵做成的中西文混合大表,然后把该表指针放在该数组里。
*/
const UGL_BMF_FONT_DESC uglBMFFont_Song_16=
{
/*UGL_FONT_DESC结束*/
{
{16,16}, /*点阵大小*/
{UGL_FONT_BOLD_OFF,UGL_FONT_BOLD_OFF},
/*宽度*/
UGL_FONT_UPRIGHT, /*斜体*/
UGL_FONT_PROPORTIONAL,/*行间距属性*/
UGL_FONT_UNICODE, /*字符集*/
“Song 16x16Dot”, /*字体名称*/
“Song” /*字体系列名称*/
}/*点阵名称等点阵属性表*/
/*UGL_BMF_FONT_DESC结构*/
/*点阵表的属性和位置*/
2, /*行间距*/
14, /*最大上偏移位置*/
2, /*最大下偏移位置*/
14, /*最大宽度*/
pageArray /*字形页*/
};/*点阵描述结构*/
/*上表解析:
首先是定义属性表,然后是定义字模和间距,并定义总的点阵描述表指针。
*/
最后定义的const UGL_BMF_FONT_DESC uglBMFFont_Song_16包含了该点阵的所有信息。只要能定位该结构,则任何能在该点阵表内匹配出字码的字都可以显示出来。WindML选择不同的点阵就是选择不同的该结构去做点阵寻址,其实现的大体过程如下:
①WIND_BASE/target/src/ugl/config/uglBmfCfge文件描述了整个系统能使用的字符集,如:
extern const UGL_BMF_FONT_DESC uglBMFFont_Courier_12;
extern const uglBMFFont_Song_16;/*就是上面的例子*/
const UGL_BMF_FONT_DESC * uglBMFFontData[]=
{
&uglBMFFont_Courier_12,
&uglBMFFont_Song_16, |
|