我在WIN CE上想通过编程实现输入法的切换。比如我想在程序刚开始运行的时候切换到英文输入法,而当程序再运行到某个时候就
想要切换到拼音输入法,并且还可以控件全角和半角输入。
不知道这个怎么编写?
------解决方案--------------------
BOOL ImmSimulateHotKey(
HWND hWnd,
DWORD dwHotKeyID
);
Hot Key Identifier Description
IME_CHOTKEY_SHAPE_TOGGLE For simplified Chinese, toggles the shape conversion mode of IME.
IME_CHOTKEY_SYMBOL_TOGGLE For simplified Chinese, toggles the symbol conversion mode of IME.
Symbol mode indicates that the user can input Chinese punctuation
and symbols by mapping to the punctuation and symbols on the keyboard.
IME_HOTKEY_DSWITCH_FIRST through IME_HOTKEY_DSWITCH_LAST Enables an IME to be switched.
OS Versions: Windows CE .NET 4.0 and later.
Header: Imm.h.
Link Library: Coreimm.lib.
code segment:
#include <imm.h>
#pragma comment ( lib, "imm32.lib" )
ImmSimulateHotKey(IME_CHOTKEY_SHAPE_TOGGLE);
------解决方案--------------------
我在mobile ppc 5 上测试也没有通过,时有时无的。
我的系统是英文系统,安装ce-star后能使用中文,不知道是否是这个原因造成的。
我没有中文系统的。
谁可以帮测一下。
如果是要实现不同的edit上有不同的输入法,可以对每个edit进行设置。
::SendMessage(GetDlgItem(IDC_EDIT) , EM_SETINPUTMODE, 0, MAKELPARAM(EIM_TEXT, 0));
有这么几个参数可以设置:
#define EIM_SPELL IM_SPELL // Spell input mode
#define EIM_AMBIG IM_AMBIG // Ambiguous mode if input engine supports this mode. Else defaults to Spell mode.
#define EIM_NUMBERS IM_NUMBERS // Numbers mode.
#define EIM_TEXT (IM_LAST + 1) // User's preferred mode. This is the user's last Spell or Ambig mode selection
// in an EIM_TEXT edit control.