//最早不知道是哪位高人写的,本人修改了一下(原来的不能区别拼音和笔画)
H文件:
#include <eikenv.h> // for CAknEnv::Static()
#include <aknindicatorcontainer.h> //for CAknIndicatorContainer
#include <aknedsts.h>
struct S_uid: public TUid
{
S_uid(int i)
{
iUid = i;
}
};
class MAknEditingStateIndicator
{
public:
// virtual void SetState(TAknEditingState aState) = 0;
virtual void SetState(TInt aState) = 0;
virtual CAknIndicatorContainer *IndicatorContainer() = 0;
};
S文件:
void GetInputMethod( )
{
MAknEditingStateIndicator * ei = CAknEnv::Static()->EditingStateIndicator ( );
if (!ei )
return;
CAknIndicatorContainer *ic = ei->IndicatorContainer ( );
if (!ic )
return;
if (ic->IndicatorState (S_uid (EAknNaviPaneEditorIndicatorPinyin )))
{
//拼音
}
else
if (ic->IndicatorState (S_uid (EAknNaviPaneEditorIndicatorStroke )))
{
//笔画
}
else
if (ic->IndicatorState (S_uid (EAknNaviPaneEditorIndicatorLowerCase ) ) )
{
//abc
}
else
if (ic->IndicatorState (S_uid (EAknNaviPaneEditorIndicatorUpperCase ) ) )
{
//ABC
}
else
if (ic->IndicatorState (S_uid (EAknNaviPaneEditorIndicatorTextCase ) ) )
{
//Abc
}
else
if (ic->IndicatorState (S_uid (EAknNaviPaneEditorIndicatorNumberCase ) ) )
{
//123
}
}
H文件:
#include <eikenv.h> // for CAknEnv::Static()
#include <aknindicatorcontainer.h> //for CAknIndicatorContainer
#include <aknedsts.h>
struct S_uid: public TUid
{
S_uid(int i)
{
iUid = i;
}
};
class MAknEditingStateIndicator
{
public:
// virtual void SetState(TAknEditingState aState) = 0;
virtual void SetState(TInt aState) = 0;
virtual CAknIndicatorContainer *IndicatorContainer() = 0;
};
S文件:
void GetInputMethod( )
{
MAknEditingStateIndicator * ei = CAknEnv::Static()->EditingStateIndicator ( );
if (!ei )
return;
CAknIndicatorContainer *ic = ei->IndicatorContainer ( );
if (!ic )
return;
if (ic->IndicatorState (S_uid (EAknNaviPaneEditorIndicatorPinyin )))
{
//拼音
}
else
if (ic->IndicatorState (S_uid (EAknNaviPaneEditorIndicatorStroke )))
{
//笔画
}
else
if (ic->IndicatorState (S_uid (EAknNaviPaneEditorIndicatorLowerCase ) ) )
{
//abc
}
else
if (ic->IndicatorState (S_uid (EAknNaviPaneEditorIndicatorUpperCase ) ) )
{
//ABC
}
else
if (ic->IndicatorState (S_uid (EAknNaviPaneEditorIndicatorTextCase ) ) )
{
//Abc
}
else
if (ic->IndicatorState (S_uid (EAknNaviPaneEditorIndicatorNumberCase ) ) )
{
//123
}
}