It is best to use makneditingstateindicator to obtain the input method status. After keyup and keydown, obtain the input method status. The Code is as follows:
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 (pinyin and strokes)
}
If (IC-> indicatorstate (s_uid (eaknnavipaneeditorindicatorstroke )))
{
// To do... if input method = T9 (pinyin and strokes)
}
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 ";
}
Return eunknown;
Struct s_uid: Public tuid
{
S_uid (int I)
{
Iuid = I;
}
};
Class makneditingstateindicator
{
Public:
Virtual void setstate (tint astate) = 0;
Virtual caknindicatorcontainer * indicatorcontainer () = 0;
};