|
楼主 |
发表于 2009-4-8 21:06
|
显示全部楼层
9、再次回到CodeWarrior编程环境,打开字库资源文件的头文件SugarFontRsc.h,真有意思,四种字体的定义在这里都看到了,看我猜得对不对:
% w$ B0 s& p3 G- J. d#define PhoneticSmallFont 12345 --〉小音标字库5 ~) K& h7 [- r* y
#define PhoneticLargeFont 12346 --〉中音标字库6 o; Y9 Z! E7 I `6 k$ h
#define PhoneticHugeFont 12347 --〉大音标字库$ B- \ l8 y, h
#define OS5_16_Font 12348 --〉显示字库7 N/ o& j6 Y) Y4 N- |; P7 q, D
我们的目标:替换前三种字库,
" C0 r$ a: t6 l: m9 T小音标字库--〉精美小音标字库
. l' p; w) b7 n i/ e中音标字库--〉精美大音标字库0 ^$ B6 w r7 Q, i" A# ]' f+ z
大音标字库--〉精美系统大字体字库! H0 O5 U6 I! [& @4 O. S7 L6 z
OK,先替换大音标字库成为系统大字体字库,它的ID标识是12347,定义的替换宏是PhoneticHugeFont。什么是宏?举个简单的例子,您的身份证号码和您的名字,哪个更容易让别人记住?对了,当然是名字了,ID好比身份证号码,宏就相当于它的名字,如果觉得这样还不确切,那就把宏当成外号吧,一般叫名字没有反应的人,叫他的外号绝对有反应。8 e+ v) r/ y5 p! r& @7 m* U
好的,打开记事本,创建一个文件,名字随意,后缀一定是.rcp,我给它起的名字是FontTest001.rcp,它代表的是文本资源文件,内容如下:5 T, l7 U0 \7 \. x) ^
#include "SugarFontRsc.h"
0 e9 o8 c: ]3 @# ] D6 G
0 V% i2 ]' X& K+ W7 mFONTFAMILY ID PhoneticHugeFont FONTID 195 LOCALE "enUS"
7 q+ V" Y1 i1 jBEGIN
2 ]* V4 u) y. D, @$ c+ M T FONT "Eng-329-CAI97848×56 low.txt" DENSITY 72& r+ {2 P4 e. B- q( M
FONT "Eng-329-CAI97848×56 high.txt" DENSITY 144
# D, _; }' f8 \6 MEND9 `' H" A2 i6 M/ Q
0 k2 z" l3 }) x: x. }9 [7 u& Q: t' s看懂了吗?不懂没关系,我在这慢慢解释,文件第一行是关联字库资源的头文件,由于PhoneticHugeFont 是在它里面被定义的,所以这一行一定是要的。第三行是创建一个字库家庭(老外有时候真幽默,起Font Family这个名字真是形象表达了同源字库集合的概念,赞一个),这个家庭成员都是为PhoneticHugeFont服务的,字库家庭的ID标识是195,为什么是195呢,问SugarMemo作者吧,或者您在SugarMemo.h中搜索一下,可以找到这么一句话:
& |) V4 W% l1 c. D! y! M#define PhoneticHugeFont ((FontID)195)
8 W/ b/ ?7 Z' d当然了它是说英语的了"enUS"。Begin和End之间是字库家庭成员,高分辨率字体和低分辨率字体,分别以72和144来区别,为什么呢?我也不知道,死记住就行了。跟我一起念100遍:所有的高分字体144,所有的低分字体72。
3 h, M( @+ a f& m1 R9 a% v$ Y+ z% y$ Y7 s/ {7 I: e! @9 B
[ 本帖最后由 mmqqll 于 2009-4-8 21:49 编辑 ] |
|