ljq900 发表于 2007-11-3 10:01:27

获得字体列表

<p>最简单的办法是 做一个动态库,下面给出delphi的实现</p><p>pb调用只需声明<font color="#113dee">function string getfontfaces() library "pbgdiex.dll"</font></p><p>结果以tab分割,每项前面用T,R,D分别指明为实型字体,光栅字体,设备字体等</p><p><font color="#5ea26b">library pbgdiex;</font></p><p><font color="#5ea26b">uses<br/>&nbsp; windows;</font></p><p><font color="#5ea26b">{$R *.res}<br/>var<br/>&nbsp; gfuntmpstr:string;<br/>function EnumFontFamiliesCallBack(lpelf:pENUMLOGFONT; next:pNEWTEXTMETRIC; FontType:integer; lParam:LPARAM):integer;stdcall;<br/>var pstr:pchar;<br/>&nbsp;&nbsp;&nbsp; l:integer;<br/>&nbsp;&nbsp;&nbsp; typestr:string;<br/>begin<br/>&nbsp; if pos(lpelf.elfFullName,gfuntmpstr)&gt;1 then exit;<br/>&nbsp; if fonttype=TRUETYPE_FONTTYPE then typestr:='T '<br/>&nbsp; else if fonttype=RASTER_FONTTYPE then typestr:='R '<br/>&nbsp; else if fonttype=DEVICE_FONTTYPE then typestr:='D '<br/>&nbsp; else typestr:='';<br/>&nbsp; gfuntmpstr:=gfuntmpstr+typestr+lpelf.elfFullName+#$9;<br/>end;<br/>function getfontfaces():LPCTSTR;stdcall;<br/>var pfss:pchar;<br/>begin<br/>&nbsp; gfuntmpstr:='';<br/>&nbsp; windows.EnumFontFamilies(GetDC(0),nil,@EnumFontFamiliesCallBack,0);<br/>&nbsp; result:=pchar(gfuntmpstr);<br/>end;<br/>exports getfontfaces;<br/>begin</font></p><p><font color="#5ea26b">end.<br/></font>&nbsp;</p>

ljq900 发表于 2007-11-6 15:18:02

lovelyni 发表于 2007-12-19 20:54:42

页: [1]
查看完整版本: 获得字体列表

免责声明:
本站所发布的一切破解补丁、注册机和注册信息及软件的解密分析文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:Admin@SybaseBbs.com