WEB开发网
开发学院手机开发Symbian 开发 Symbian FEP开发模式 阅读

Symbian FEP开发模式

 2010-05-31 19:57:00 来源:WEB开发网   
核心提示:4.浮动窗口浮动窗口一般悬浮在作为输人对象的窗口上面,显示用户输入的输入码以及输入码对应的候选字等,Symbian FEP开发模式(2),它由程序员编程来控制它的显示时机和显示位置.而且不应该获得焦点,浮动窗口的功能是用来显示候选信息以及提示信息,当程序所处理的汉字字符不是UNICODE,而是GBK或者GB2312时,

4.浮动窗口

浮动窗口一般悬浮在作为输人对象的窗口上面,显示用户输入的输入码以及输入码对应的候选字等,它由程序员编程来控制它的显示时机和显示位置.而且不应该获得焦点。浮动窗口的功能是用来显示候选信息以及提示信息。为了能使窗口浮动于应用程序之上需要在其构造函数中调用如下语句:

DrawableWindow()->SetOrdinalPosition(0,FCoeWinPriorityFep);

在浮动窗口上书写信息需要重载CCoeContml的绘图函数:

void Draw(const TRect&aRecl)coast;

在函数中可以通过对CWindowGc实例的获取:

CWindowGc&gc=SystemGc();来进行窗口颜色与文字的控制。窗口的人小及位置则由Draw->ableWindow()->SetExtent()函数来控制。

5.内码转换(GB-UTF8)

对于编写程序来说.可以操作的汉字编码方式有多种:

GBK、GB2312、UNICODE、UTF-8等方式。Symbian OS仅支持UNICODE的编码方式。因此,当程序所处理的汉字字符不是UNICODE,而是GBK或者GB2312时,我们就要进行GBK或GB2312到UNICODE的装换。

下面的程序实现了这一转换:

GBTOUnicode(coast Trext848tr,TDes&aBuf)

{

CCnvCharacterSetConverter*converter=CCnvCharacterSetConverter::NewLC();

//检测是否有其它编码转换工作在进行

if(converter->PrepareToConvertToOrFmmL(KCharacterSetldantifireGB2312,

∥如果是GBK.则CharactelSHldentifierGb2312改为KCharaeter

SetldenrifierGb(CEikonEnv::Static())->FsSession())!=CCnvCharacter

SetConvet|ler::EAvailable)

User;;leave(KErrNoISupported);

Tint state=CCnvCharacterSetConverier::KStateDefault;

TPtrC8 source(str);

HBufC*hbuf=HBufC::NewL(sourceLength());

TPtrl6 ptr=hbuf->Des();

if(CCnvCharacterSetConverter::EErrorinformedlnput==converter-> ConvertToUnicode(ptr,Source,state))

User::Leave(KErrArgumem);

aBuf.Copy(plr);

CleanupStack::PopAndDestroy();//Buf返回的就是数据的UNICODE编码方式

delete hhuf;

}

支持FEP的基本组件和基础类

Tags:Symbian FEP 开发

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