Delphi: 计算自动换行文本所需的 Rect 高度

Delphi: calculate Rect height needed for a wordwrapped text

Delphi Rio 10.3.1 + GR32 (TextoutW + DT_WORDBREAK)

我想使用 GR32 库中的 TextoutW 在 TBitmap32 上绘制文本,并且我想计算必要的高度以容纳给定 MaxWidth 参数和特定字体的自动换行文本。

我如何为此计算必要的 Rect?

来自 GR32 的 TextoutW 方法,至少对于 VCL 后端,包装了 Windows DrawTextW 函数。 Windows API 函数确实提供了一种通过 DT_CALCRECT 标志计算输出矩形的方法。但是,GR32 接口不会return 计算出的 rect 给调用者。

所以我怀疑您需要直接调用 DrawTextW,传递适当的标志和 GR32 表面的设备上下文 (HDC)。