bdo*_*lan 14 windows fonts gdi
在Windows中,CreateFontIndirect()如果未请求所请求的字体,则调用可以静默替换兼容字体.该GetObject()调用不反映这一替代; 它返回相同的LOGFONT传入.如何找到实际创建的字体?或者,如何强制Windows仅返回所请求的确切字体?
Adr*_*thy 15
在Windows中,如果未请求所请求的字体,CreateFontIndirect()调用可以静默替换兼容字体.GetObject()调用不反映此替换; 它返回相同的LOGFONT传入.
不是CreateFontIndirect正在进行替换.当字体被选入DC时发生替换.CreateFontIndirect只为您提供LOGFONT内部副本的句柄.这就是GetObject为您提供相同LOGFONT的原因.
如何找到实际创建的字体?
如果将HFONT选择到目标DC中,则可以向DC询问有关实际选择的字体与LOGFONT最佳匹配的信息.
这基本上告诉你实际创建了什么字体.
在旁边:
在做类似打印预览的事情时,你可以从一个LOGFONT开始,选择它进入打印机DC(或IC),抓住实际字体的细节(打印机经常替换字体),然后创建一个更具代表性的新LOGFONT实际的字体.在屏幕DC中选择它,并且 - 通过适当的大小转换 - 对用户实际获得的内容进行非常好的匹配.
| 归档时间: |
|
| 查看次数: |
3140 次 |
| 最近记录: |