//显示文本
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();
}
显示文本自动换行
最新推荐文章于 2023-12-25 13:01:38 发布