WEB开发网
开发学院手机开发Symbian 开发 Symbian 中检测编辑框当前输入法类型的方法 阅读

Symbian 中检测编辑框当前输入法类型的方法

 2010-03-18 21:01:00 来源:WEB开发网   
核心提示:当我们进行全屏程序开发的时候,对编辑框中当前的输入法要时行判断,Symbian 中检测编辑框当前输入法类型的方法,以方便我们在界面上贴图表现,通过下面的三步可以完成这个功能:1、在.h文件中加入相关的头文件#include // for CAknEnv::Static()#include //for CAknIndic

当我们进行全屏程序开发的时候,对编辑框中当前的输入法要时行判断,以方便我们在界面上贴图表现,通过下面的三步可以完成这个功能:

1、在.h文件中加入相关的头文件

#include // for CAknEnv::Static()

#include //for CAknIndicatorContainer

2、在.h文件中加入用到的类定义

struct S_uid: public TUid

{

S_uid(int i)

{

iUid = i;

}

};

class MAknEditingStateIndicator

{

public:

virtual void SetState(TAknEditingState aState) = 0;

virtual CAknIndicatorContainer *IndicatorContainer() = 0;

};

在系统的头文件(C:Symbian.0sSeries60_v20Epoc32includeaknenv.h )中类CAknEnv用到了类MAknEditingStateIndicator,但SDK中没有提供这个类定义,所以要在这里加上。

3、在.cpp文件中实现

void TestInputMethod()

{

MAknEditingStateIndicator * ei = CAknEnv::Static()->EditingStateIndicator() ;

if (!ei) return;

CAknIndicatorContainer *ic = ei->IndicatorContainer();

if (!ic) return;

if(ic->IndicatorState(S_uid(EAknNaviPaneEditorIndicatorT9) ))

{

//to do ... if input method = T9 (即拼音和笔画)

}

else if(ic->IndicatorState(S_uid(EAknNaviPaneEditorIndicatorLowerCase)))

{

//to do ... if input method = "abc";

}

else if(ic->IndicatorState(S_uid(EAknNaviPaneEditorIndicatorUpperCase)))

{

//to do ... if input method = "ABC";

}

else if(ic->IndicatorState(S_uid(EAknNaviPaneEditorIndicatorTextCase)))

{

//to do ... if input method = "Abc";

}

else if(ic->IndicatorState(S_uid(EAknNaviPaneEditorIndicatorNumberCase)))

{

//to do ... if input method = "123";

}

}

1 2  下一页

Tags:Symbian 检测 编辑

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