WEB开发网
开发学院手机开发Symbian 开发 Symbian 中大段文本显示控件详解 阅读

Symbian 中大段文本显示控件详解

 2010-02-22 20:53:00 来源:WEB开发网   
核心提示:在container中的使用第一步:在container中定义一个成员CTextDisplay *iTextDisplay;第二步:在constructl中初始化代码如下: //这里是为了方便直接从文件中读出一段文本_LIT(KAbout,"C:\about.ini");RFs fs = CEiko

在container中的使用

第一步:在container中定义一个成员

CTextDisplay *iTextDisplay;

第二步:在constructl中初始化

代码如下: //这里是为了方便直接从文件中读出一段文本

_LIT(KAbout,"C:\about.ini");

RFs fs = CEikonEnv::Static()->FsSession();

RFile fp;

TInt err = fp.Open(fs,KAbout,EFileRead);

if(err == 0)

{

TInt nFileSize = 0;

fp.Size(nFileSize);

HBufC8* fileInfo = HBufC8::NewLC(nFileSize);

TPtr8 file = fileInfo->Des();

fp.Read(file, nFileSize);

HBufC* fileInfo16 = HBufC::NewLC(file.Length());

TPtr16 ptr = fileInfo16->Des();

/*ptr.Copy(file);*/

ConvGbk2Uni(file, ptr);

iTextDisplay = CTextDisplay::NewL(aRect,this);

iTextDisplay->SetDisplayContent(fileInfo16->Des());

iTextDisplay->SetContainerWindowL(*this);

iTextDisplay->SetExtent(TPoint(0,0), TSize(240, 320));

CleanupStack::PopAndDestroy(2);

}

fp.Close();

在一段代码写在ActivateL函数之前,原因我就不说了。ConvGbk2Uni函数的代码我也贴出来。如下:

void ConvGbk2Uni(TDesC8& original, TDes& res) //这个函数不是我写的,从网上搜的

{

//RFs aFileServerSession = CEikonEnv::Static()->FsSession();

RFs aFileServerSession;

aFileServerSession.Connect();

// CleanupStack::Pop();

CCnvCharacterSetConverter* converter=CCnvCharacterSetConverter::NewLC();

if(converter->PrepareToConvertToOrFromL(KCharacterSetIdentifierGbk,aFileServerSession)!=CCnvCharacterSetConverter::EAvailable)

User::Leave(KErrNotSupported);

TInt state=CCnvCharacterSetConverter::KStateDefault;

TPtrC8 str( original );

HBufC* iInfoText = HBufC::NewL( str.Length() );

TPtr16 ptr = iInfoText->Des();

上一页  3 4 5 6 7 8 9  下一页

Tags:Symbian 大段 文本

编辑录入:coldstar [复制链接] [打 印]
赞助商链接