0

我正在生成一个在页脚中有标题的报告。我使用 DrawText 找出标题的尺寸。问题是文本总是被剪裁,但是当我在文本末尾有回车时,所有文本都完美显示。

lClientRect := Rect(0, 0, 4770, 59);
lFlags := DT_CALCRECT or DT_EXPANDTABS or Alignments[Alignment]
       or WordWraps[WordWrap] or DT_NOPREFIX or DT_TOP or DT_EXTERNALLEADING;

DrawText(lCanvas.Handle, PChar(lsCaption), Length(lsCaption), lClientRect, lFlags);

我在调用 DrawText 后检查了矩形,它是 (0, 0, 4366, 59),但是当我有回车时,它是 (0, 0, 4366, 118)。

我对正在发生的事情一无所知。任何帮助将不胜感激。

4

1 回答 1

3

回车将第二行文本添加到字符串中,从而将计算出的矩形的高度加倍。(Windows 对于换行符或回车符是否开始新行是灵活的。)

至于为什么文本被剪裁(我假设在底部边缘),可能是您使用与绘制文本时不同的字体来计算大小。

于 2013-05-02T16:31:46.570 回答