我正在生成一个在页脚中有标题的报表。我使用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后检查了rect,它是(0,0,436,69),但是当我有回车符时,它是(0,0,436,118)。
我对发生的事情一无所知。任何帮助将不胜感激。
答案 0 :(得分:3)
回车符将第二行文本添加到字符串中,从而使计算出的矩形的高度加倍。 (Windows对于换行符或回车符是否开始换行很灵活。)
至于剪裁文本的原因(我假设在底部边缘),可能是你使用与绘制文本时不同的字体来计算尺寸。