您的位置:首页 > 其它

统计一个字符串在固定的宽度内几行能写完。

2011-01-01 17:12 218 查看
//查看地址几行能写完

TInt CConShopItem::CountTextLines(TInt aWidth, const TDesC & aValue)

{

TInt nLines = 0;

if (aWidth == 0 || aValue.Length() == 0)

{

return nLines;

}

const CFont* font = NULL;

font = LatinBold16();

TBuf<400> bValue;

bValue.Append(aValue);

//第二行的文字需要自动换行

TInt leng = font->TextWidthInPixels(bValue);

TInt pstart = 0;

TInt pLength = 0;

TBuf<200> text;

if (leng <= aWidth)//判断一行是否可以显示完

{

return 1;

}

else

{

pLength = font->TextCount(bValue.Mid(pstart), aWidth);

do

{

text.Zero();

text.CopyC(bValue.Mid(pstart, pLength));

nLines++;

bValue.CopyC(bValue.Mid(pstart + pLength));

pLength = font->TextCount(bValue.Mid(pstart), aWidth);

}

while (pLength > 0);

}

return nLines;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐