冰天雪地跪求高人解决字体精度问题

allenchou 2005-01-26 11:49:34
最近遇到一个问题:是一个关于打印和预览的咚咚,我设置的模式是 MM_ANIOSTROPIC,用统一的逻辑坐标来进行文本或图像的绘制,文本绘制函数用的是DrawTextEx。这个打印预览需要支持缩放(Zoom)功能,现在的问题的,在进行缩放的过程中,比如从100%缩放到50%,字体的逻辑大小会发生变化,比如原来在100%模式下显示为2行的文本,到了50%就变成3行或是一行了,我用到的API是 GetTextMetric得到的字体高度。比如:在100%模式下,8.25点的字体是210 逻辑高度,但是到了57%就是200%,50%就是180,10%居然到了300%,这样使得我的分页算法在不同模式下算出来得叶面内容不一致了,在预览模式下就不适所见即所得(WYSWYG)了,这个问题缠绕我好几天了,一直都搞不定,所以上来请教各位高人,希望能实现所见即所得。另外,我是在Unicode模式下编码的。

先跪谢了!




...全文
75 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
allenchou 2005-01-29
  • 打赏
  • 举报
回复
这个问题解决了,先选择一个 lfHeight = 2048(em网格数的高度),然后将该字体选如HDC, 并调用
GettTextMetrics楼上正解!

flyhigh 2005-01-27
  • 打赏
  • 举报
回复
一般来说不要用GetTextMetric再乘字符串长度等方式来计算一个字符串显示所占用的空间。我一直用的是GetTextExtent,它可以根据当前DC中的字体计算一个字符串的位置。至于用什么映射方式,什么内码其实没有什么区别。
sboom 2005-01-26
  • 打赏
  • 举报
回复
读书人一声长叹............
qrlvls 2005-01-26
  • 打赏
  • 举报
回复
呵呵,有够凄惨,帮顶
no VC, no MSDN

19,469

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧