加载临时字体最有效的解决方案
有时候需要用到一些特殊的字体,而用户的机器上可能没有。把它永久安装到用户机器上
总会让人有点不爽,因为这些可能是很特殊的字体,比如是音标,或者液晶数字等用户平
时根本就用不着的东东。这时候,程序运行的时候,把它们动态加载为临时字体,就是很
好的选择了。
网上广泛流传的使用 的方法,缺点比较多。一是,临时加载之后,除了
自己的程序可以使用刚加载的字体之外,其它程序,比如记事本,在字体列表中也会发现
这个字体也被加了进来,这种私有性,就不是很好了。二,就是,这种办法,最大的弊病
就 是 , 当 非 正 常 退 出 ( 比 如 用 任 务 管 理 器 杀 掉 ) 时 , 可 能 会 调 用 不 到
,字体就保留下来了,但是之后就会发现再次 时会
失败,而且其它程序,也无法使用这种字体了(但是还可以在字体列表中见到)。(重
启计算机才可让此字体消失)
回到主题上来,最有效的办法是什么呢?方法之一,用 从资源加
载字体
上 面 说 了 , !"
#"!"$ $
"
也就是加载的字体为进程私有,在系统字体列表中不可枚举
这种情况下,如果不调用与之配对的 ,临时字体也会被销毁,
第二次使用时也完全不会出问题
附代码:
%&'
(
)))*%%+,*&'-
)))*+&%.
)))))))/%01&%2023*0%'.
)))))))2&45%67''-
)))&'
)))(
)))))))*,8058+8&%.'-
)))))))9+8:&'-
)))))))#0+;&%.'-
)))))))#0-
)))))))2+&
))))))))))))))))))).)))))))))<<
))))))))))))))))))).)))))))))<<""$
)))))))))))))))))))188.))))))))<<"=
)))))))))))))))))))>'-)))))<<"
)))))))&?2'
)))))))))))!5&2&4字体加载失败!”''-
)))@
@
当然,还有方法之二,就是使用 从文件加载字体