如何切换当前的输入法

fire_boy 2007-09-10 09:31:51
HI,各位达人,有一问题困扰已久:
我有一编辑器,从CEikEdwin继承(不是对话框内嵌那种),需要随光标的移动切换输入法,如abc<->123,我摸索了很久,先后试过CEikEdwin::SetAknEditorCurrentInputMode()和CAknEdwinState::SetCurrentInputMode().在模拟器上是OK,但在手机上不能切换!!!
不知哪位先人能指点,不胜感激
...全文
448 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
fire_boy 2007-09-20
  • 打赏
  • 举报
回复
如有决者,可加分至100,绝不食言




呵呵,isarc,我态度改变了,有空来帮我顶顶,捣乱也可以,心情好了就给你分
isarc 2007-09-18
  • 打赏
  • 举报
回复
真没有幽默感。
告诉你方法了,还不识抬举。下次我不回你的帖子就是了。
fire_boy 2007-09-14
  • 打赏
  • 举报
回复
欢迎任何建议

isarc到一边去
isarc 2007-09-13
  • 打赏
  • 举报
回复
'a'-'1'
var= 'a' - ('a' - '1');
fire_boy 2007-09-12
  • 打赏
  • 举报
回复
谢谢您的回复
假定当前是"abc",现要设成"123",该如何实现?
fire_boy 2007-09-11
  • 打赏
  • 举报
回复
sorry,找不到,
请再次贴出你的代码,或者你已经给出代码的网址,好吗,万分感谢!!!
(如OK马上结贴)
jeffchen 2007-09-11
  • 打赏
  • 举报
回复
查一下旧的帖子,我已经给出代码。
fire_boy 2007-09-11
  • 打赏
  • 举报
回复
jeffchen 谢谢您的回复!
假如我要设定当前输入法是"123",那我该怎么办呢?
jeffchen 2007-09-11
  • 打赏
  • 举报
回复
// INCLUDES
#include <aknenv.h>
#include <aknindicatorcontainer.h> //for CAknIndicatorContainer

// CLASS DECLARATION
struct S_uid: public TUid
{
S_uid(int i)
{
iUid = i;
}
};

class MAknEditingStateIndicator
{
public:
virtual void SetState(TInt aState) = 0;
virtual CAknIndicatorContainer *IndicatorContainer() = 0;
};
/**
* CInputMode
*
*/
class CInputMode
{
public: // Constructors and destructor
enum EInputMode
{
EUnknown,
EABC,
Eabc,
EAbc,
E123,
EPinYin,
EBiHua
};
static EInputMode GetInputMode();


};
// CPP
#include "InputMode.h"
#include <avkon.hrh>

CInputMode::EInputMode CInputMode::GetInputMode()
{

MAknEditingStateIndicator * ei = CAknEnv::Static()->EditingStateIndicator() ;
if (!ei) return EUnknown;

CAknIndicatorContainer *ic = ei->IndicatorContainer();
if (!ic) return EUnknown;

if(ic->IndicatorState(S_uid(EAknNaviPaneEditorIndicatorPinyin) ))
{
//to do ... if input method = T9 (即拼音和笔画)
return EPinYin;
}
if(ic->IndicatorState(S_uid(EAknNaviPaneEditorIndicatorStroke) ))
{
//to do ... if input method = T9 (即拼音和笔画)
return EBiHua;
}
else if(ic->IndicatorState(S_uid(EAknNaviPaneEditorIndicatorLowerCase)))
{
//to do ... if input method = "abc";
return Eabc;
}
else if(ic->IndicatorState(S_uid(EAknNaviPaneEditorIndicatorUpperCase)))
{
//to do ... if input method = "ABC";
return EABC;
}
else if(ic->IndicatorState(S_uid(EAknNaviPaneEditorIndicatorTextCase)))
{
//to do ... if input method = "Abc";
return EAbc;
}
else if(ic->IndicatorState(S_uid(EAknNaviPaneEditorIndicatorNumberCase)))
{
//to do ... if input method = "123";
return E123;
}
return EUnknown;
}
fire_boy 2007-09-10
  • 打赏
  • 举报
回复
isarc希望你不要再跟贴
isarc 2007-09-10
  • 打赏
  • 举报
回复
不知哪位先人能指点
你这话也太过分了吧。。。。
fire_boy 2007-09-10
  • 打赏
  • 举报
回复
需要切换当前输入法,不是画光标,当光标在pos1是123,在pos2是abc
isarc 2007-09-10
  • 打赏
  • 举报
回复
),需要随光标的移动切换输入法

不明白你的意思。我曾经在密码框里面画光标。你要的是不是画光标?

3,119

社区成员

发帖
与我相关
我的任务
社区描述
塞班系统(Symbian系统)是塞班公司为手机而设计的操作系统,它的前身是英国宝意昂公司的 EP ( Electronic Piece of cheese)操作系统。
社区管理员
  • Symbian社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧