【问题标题】:DrawText and Text ClippingDrawText 和文本剪辑
【发布时间】:2017-03-28 12:10:20
【问题描述】:

有没有办法检测传递给DrawText 的文本何时被剪切?

我希望能够在给定的矩形中绘制任何文本(即已被DrawText 裁剪,这意味着用户可能会错过文本的某些重要部分)。

我想获得显示剪裁文本所需的高度。 任何帮助表示赞赏。

【问题讨论】:

    标签: c++ winapi mfc drawtext


    【解决方案1】:

    您可以使用DT_CALCRECT 标志来获得所需的矩形大小。另外,函数的返回值给出了文字的高度。

    来自在线文档:

    如果函数成功,返回值是逻辑单位的文本高度。如果指定了 DT_VCENTER 或 DT_BOTTOM,则返回值是从 lpRect->top 到绘制文本底部的偏移量。

    【讨论】:

    • 它只是在截断不适合矩形区域的字符串后给出矩形的高度
    • 您致电DrawText 两次。首先使用DT_CALCRECT,然后没有标志,但矩形尺寸正确。
    • 使用DT_CALCRECT 调用DrawText(),并将一个高度为0 的矩形设置为所需的宽度。它将返回必要的矩形高度。现在您知道了绘制文本所需的整个矩形。将其与您的剪切矩形进行比较,您将知道文本是否会被剪切。
    猜你喜欢
    • 2011-11-10
    • 2014-02-03
    • 1970-01-01
    • 2018-11-23
    • 2015-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-29
    相关资源
    最近更新 更多