mmp文件中引用
LIBRARY eikcoctl.lib gdi.lib
== Source File. ==
Add following header file in your source file.
<code cpp>
#include <eiklabel.h>
#include <aknutils.h>
#include <gulcolor.h>
#include <GDI.H>
</code>
Add following source code in ConstructL() method.
<code cpp>
const CFont* font = CCoeEnv::Static()->NormalFont();
iTextArray = new CArrayFixFlat<TPtrC>(1);
iMultiLineText = HBufC::NewL(0);
iLabel = new (ELeave) CEikLabel;
iLabel->SetContainerWindowL( *this );
//Set your custom font here.
iLabel->SetFont(font);
//wrapping text to set in label.
TBuf<100> buffer;
buffer.Copy(_L("Testing long label in symbian OS c++."));
iTextArray->Reset();
TInt screenWidth = 240 ; // set width as per your requirement.
AknTextUtils::WrapToArrayL(buffer, screenWidth,*font, *iTextArray);
TInt Height = 0; //to set height of label.[[Category:Symbian C++]]
for (TInt i = 0; i < iTextArray->Count(); i++)
{
TInt length = iTextArray->At(i).Length() + 1;
iMultiLineText = iMultiLineText->ReAllocL(iMultiLineText->Length() + length);
iMultiLineText->Des().Append(iTextArray->At(i));
iMultiLineText->Des().Append(_L("\n"));
Height += font->HeightInPixels() + font->AscentInPixels()/2;
}
iLabel->SetTextL(iMultiLineText->Des());
// setting font color to red.
iLabel->OverrideColorL( EColorLabelTextEmphasis, KRgbRed );
iLabel->SetEmphasis( CEikLabel::EPartialEmphasis );
//set position of label.
iLabel->SetPosition(TPoint(0, 20));
//set size of label.
iLabel->SetSize(TSize(screenWidth,Height));
</code>
Add the following code in the destructor to delete all used variables.
<code cpp>
delete iLabel;
delete iTextArray;
delete iMultiLineText;
</code>