【问题标题】:Display text in a specified rectangle with directwrite使用directwrite在指定矩形中显示文本
【发布时间】:2018-12-03 04:18:46
【问题描述】:

我想用directwrite在指定的矩形和指定的字体大小显示文本,矩形外的文本应该被剪掉。

通过搜索,我找到了有关 CreateTextLayout 的信息,但似乎无法用它定义字体大小。

感谢您的回答。

【问题讨论】:

  • Ypu 能解释一下吗?谢谢
  • 我刚刚添加了问题的图片,你也需要文本格式和drawText方法的代码吗?感谢您的帮助
  • 如果它认为合适并且对于更好地压缩代码是必要的,如果它不合适。 :)

标签: directwrite


【解决方案1】:

这不是 DirectWrite 负责的事情,除非您使用的是 IDWriteBitmapRenderTarget。如果您使用 Direct2D 中的 DrawText/DrawTextLayout,您只需使用 D2D1_DRAW_TEXT_OPTIONS_CLIP 选项。如果您使用 DirectWrite 位图目标,将目标大小设置为布局大小或将布局大小部分设置为目标上下文就足够了。

【讨论】:

  • 我试图将文本剪切到某个矩形,以便例如只出现一半的“m”。抱歉我的问题不准确。
  • 那我不明白到底想达到什么目的。剪裁选项不关心半行是否可见。你想只显示给定宽度的前 3 行吗?
【解决方案2】:

IDWriteTextFormat::SetTrimming()。应用时(使用 SetTrimming(&DWRITE_TRIMMING{DWRITE_TRIMMING_GRANULARITY_CHARACTER,0,0}, nullptr);),溢出的字符 [glyph clusters?] 和行将被省略。

【讨论】:

    猜你喜欢
    • 2014-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-15
    • 2012-06-13
    • 2012-11-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多