我的程序通过计算文本的宽度和高度将文本字符串绘制成矩形,并选择较小的字体(如果它对于矩形来说太大)。但最初我只使用单行文本,现在我需要一些多行,我习惯使用GetTextExtentPoint32,但如果在字符串中有字符串,它似乎将其视为普通字符。
带有DT_CALCRECT的DrawText仅返回文本的高度...
有一种简单的方法吗?
答案 0 :(得分:1)
你应该大致这个(伪代码):
size text_dim(0,0);
foreach( line in text.split("\n") )
{
size line_dim = GetTextExtentPoint32(line.start,line.length);
text_dim.y += line_dim.y;
text_dim.x = max(text_dim.x,line_dim.x);
}
return text_dim;
答案 1 :(得分:1)