关于字体(120分)

D

DNChen

Unregistered / Unconfirmed
GUEST, unregistred user!
这个问题来自Danny Chen,<br><br>我想知道没有安装到系统中的TTF文件我能够获得多少信息?<br>用winapi或者delphi的函数做。
 
把它安装到系统中再"获取信息"不就可以了吗? :)<br><br>AddFontResource
 
如果一种TTF字体没有加入到Windows' font table是不会得到什么信息的, 除非你<br>对TTF文件格式(特别是header)有所了解.<br><br>可以用AddFontResource函数将TTF文件临时加入到系统, 检查它的信息后使用<br>RemoveFontResource从系统中删除.<br><br>对于TTF文件, 如果没有伴随的头文件*.FOT, 必须首先CreateScalableFontResource<br>函数去创建(将TTF文件名作为第三个参数)一个然后才能使用AddFontResource将<br>新创建的FOT文件名作为参数. <br><br>每当为系统添加或删除一个font资源时, 必须用SendMessage发送一个FONTCHANGE <br>消息给系统, 以便通知其他程序系统的字体表发生了变化.<br><br>
 
我发现,事实并非象HUIZHANG所说,没有FOT就无法安装。<br>实际上,用ADDF???()这个函数足以安装一般的TTF,除非你已安装。<br>发送SEN??()的消息是必要的否则其它程序不知道字体表发生了变化。<br><br>我还发现,如果一个程序用一个字体文件名串作为参数调用另一个程序,<br>如FONTVIEW,如果你在原程序将这个字体REMOVE..()掉,关闭FONTVIEW<br>将会出现非法操作。<br><br>但我不明白为什么FONTVIEW和“控制面板”“字体”“安装新字体”可以<br>取得未安装的字体资料,象字体名,字体的公司版本等。<br><br>头痛!哥们知道的快告诉我,我快受不了了。
 
如果是要安装字体后才取得字体的名称,可以解释FONTVIEW的操作,因为进入<br>FONTVIEW再在另一程序更新字体列表可以发现系统安装了新的字体,就是<br>FONTVIEW正在看的那个。不过就很难解释“字体”在“安装新字体”时的行为,<br>它可是将全部字体名取出来后再安装的。如果是通过先安装再取得的话,<br>显然又不大可能......
 
直接都字体文件头可不是不可能的事。 估计"安装新字体"就是这么做的。
 
hi,各位,我就是Danny Chen。<br><br>这个问题,如果谁有ttf格式资料也可以,了不起疯狂一次。<br><br>另外,如果fontview是先安装了字体再看的(见3h),那么,为什么无法看见中文字体的预缆,一般是安装以后用fontview就可以看到中文字的显示,而非安装看到的只能是英文。我问这个问题就是因为这个原因,我画图要装字体,却无法事先查看字体的样子,所以想自己来写个程序。已经看到一个类似的程序Findttf,用VB5写的,试用的是3h的方法,我觉得不好,伤硬盘,同时,也伤资源。
 
hi,各位,我就是Danny Chen。<br><br>这个问题,如果谁有ttf格式资料也可以,了不起疯狂一次。<br><br>另外,如果fontview是先安装了字体再看的(见3h),那么,为什么无法看见中文字体的预缆,一般是安装以后用fontview就可以看到中文字的显示,而非安装看到的只能是英文。我问这个问题就是因为这个原因,我画图要装字体,却无法事先查看字体的样子,所以想自己来写个程序。已经看到一个类似的程序Findttf,用VB5写的,试用的是3h的方法,我觉得不好,伤硬盘,同时,也伤资源。<br><br>对了,分数从我帐户扣
 
我有详细的ttf格式说明, win95/NT和win31的<br>你也可以从ftp://ftp.microsoft.com/developr/drg/truetype下载<br>文件名为ttospec.zip(for win31)和ttspec.zip(win95/NT)<br>全部大小700k左右
 
Another_eYes,你写一个函数读这个东西吧,拜托了!<br><br>另外要对哥们说的是,我写一个查询字体的程序已进入测试期,很快与大家见面.<br>大家请耐心等上几天,很快的了.这个东西并不会象DNChen说的那样浪费资源.<br>不信请试用.要试用的给我发EMAIL.<br>glowing@nease.net
 
任何一个字体装上后都要浪费资源的,我想,还是自己知道格式的好,不过eyes的资<br>料很好,很详细。<br><br>YYSUN,从我的帐户扣<br>20-&gt;3h<br>20-&gt;huizhang<br>80-&gt; Another_eyes,谢谢
 
你应该自己给大家加分。<br><br>BTW:我才20... &nbsp;:(
 
多人接受答案了。
 

Similar threads

回复
0
查看
847
不得闲
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
754
DelphiTeacher的专栏
D
D
回复
0
查看
731
DelphiTeacher的专栏
D
顶部