//显示文本
void CHelpContainer::ShowForuthLab(CWindowGc& gc, const TRect& aRect) const
{
const CFont* font = NULL;
font = LatinPlain12();
gc.UseFont(font);
HBufC* Hbufc = HBufC::New(iValue->Des().Length());
TPtr16 string = Hbufc->Des();
string.CopyC(iValue->Des());
TPtr16 text = Hbufc->Des();
TInt pLength = 0;
TInt pstart = 0;
TInt i = 0;
TInt lineHeight = 14;
TInt leng = font->TextWidthInPixels(iValue->Des());
if (leng <= aRect.Width())//判断一行是否可以显示完
{
gc.DrawText(string, TPoint(aRect.iTl.iX, aRect.iTl.iY));
}
else
{
// pLength ---得到一行显示的文本的个数
pLength = font->TextCount(string.Mid(pstart), aRect.Width());
do
{
text.Zero();
text.CopyC(string.Mid(pstart, pLength));
//iItemArray->AppendL(text);
gc.DrawText(text, TPoint(aRect.iTl.iX, aRect.iTl.iY + lineHeight
* i));
i++;
string.CopyC(string.Mid(pstart + pLength));
pLength = font->TextCount(string.Mid(pstart), aRect.Width());
}
while (pLength > 0);
}
delete Hbufc;
//释放画笔
gc.DiscardFont();
}
显示文本自动换行
最新推荐文章于 2024-12-26 11:33:34 发布
本文介绍了一种使用C++在指定矩形区域内显示文本的方法。该方法首先设置字体,然后根据文本长度和区域宽度确定如何分段显示文本,支持单行或多行显示,并确保文本完整呈现。
1555

被折叠的 条评论
为什么被折叠?



