【发布时间】:2017-03-28 12:10:20
【问题描述】:
有没有办法检测传递给DrawText 的文本何时被剪切?
我希望能够在给定的矩形中绘制任何文本(即已被DrawText 裁剪,这意味着用户可能会错过文本的某些重要部分)。
我想获得显示剪裁文本所需的高度。 任何帮助表示赞赏。
【问题讨论】:
有没有办法检测传递给DrawText 的文本何时被剪切?
我希望能够在给定的矩形中绘制任何文本(即已被DrawText 裁剪,这意味着用户可能会错过文本的某些重要部分)。
我想获得显示剪裁文本所需的高度。 任何帮助表示赞赏。
【问题讨论】:
您可以使用DT_CALCRECT 标志来获得所需的矩形大小。另外,函数的返回值给出了文字的高度。
来自在线文档:
如果函数成功,返回值是逻辑单位的文本高度。如果指定了 DT_VCENTER 或 DT_BOTTOM,则返回值是从 lpRect->top 到绘制文本底部的偏移量。
【讨论】:
DrawText 两次。首先使用DT_CALCRECT,然后没有标志,但矩形尺寸正确。
DT_CALCRECT 调用DrawText(),并将一个高度为0 的矩形设置为所需的宽度。它将返回必要的矩形高度。现在您知道了绘制文本所需的整个矩形。将其与您的剪切矩形进行比较,您将知道文本是否会被剪切。