设置控件输入的输入方式-补充
经过测试发现可以通过|运算设置其它的输入方式,例如汉字输入与大写字符输入法。
关键在于winuserm.h中定义的几种输入模式的组合,
可以供组合的键值有
利用这些可以组合出新的输入模式:
测试出来的有
SendMessage(hWnd, EM_SETINPUTMODE, 0, EIM_SPELL | IMMF_CAPSLOCK | IMMF_SETCLR_CAPSLOCK);
可以设置输入方式为大写字母输入
而对于EIM_SPELL与EIM_TEXT有一定区别就在于,使用EIM_SPELL出现的是字母的输入法,而使用EIM_TEXT有可能出现汉字的输入法,没有搞明白怎么回事
同样是T9输入法的EIM_AMBIG也有可能出现汉字输入法。
这个组合是出现汉字输入法的组合EIM_AMBIG | IMMF_SHIFT | IMMF_SETCLR_SHIFT,应该还有几个,不过没有试出来,不知道哪里有这种文档,要是可以查出来就好了,省得这样试。
关键在于winuserm.h中定义的几种输入模式的组合,
可以供组合的键值有
// Input mode modifier flags
#define EIMMF_SETCLR_SHIFT IMMF_SETCLR_SHIFT // In. Used to set/clear Shift.
#define EIMMF_SETCLR_CAPSLOCK IMMF_SETCLR_CAPSLOCK // In. Used to set/clear Capslock.
#define EIMMF_SHIFT IMMF_SHIFT // In/Out. Shift state.
#define EIMMF_CAPSLOCK IMMF_CAPSLOCK // In/Out. CapsLock state.
#define EIMMF_MASK IMMF_MASK // Mask to access modifier flags.
#define EIMMF_SETCLR_SHIFT IMMF_SETCLR_SHIFT // In. Used to set/clear Shift.
#define EIMMF_SETCLR_CAPSLOCK IMMF_SETCLR_CAPSLOCK // In. Used to set/clear Capslock.
#define EIMMF_SHIFT IMMF_SHIFT // In/Out. Shift state.
#define EIMMF_CAPSLOCK IMMF_CAPSLOCK // In/Out. CapsLock state.
#define EIMMF_MASK IMMF_MASK // Mask to access modifier flags.
利用这些可以组合出新的输入模式:
测试出来的有
SendMessage(hWnd, EM_SETINPUTMODE, 0, EIM_SPELL | IMMF_CAPSLOCK | IMMF_SETCLR_CAPSLOCK);
可以设置输入方式为大写字母输入
而对于EIM_SPELL与EIM_TEXT有一定区别就在于,使用EIM_SPELL出现的是字母的输入法,而使用EIM_TEXT有可能出现汉字的输入法,没有搞明白怎么回事
同样是T9输入法的EIM_AMBIG也有可能出现汉字输入法。
这个组合是出现汉字输入法的组合EIM_AMBIG | IMMF_SHIFT | IMMF_SETCLR_SHIFT,应该还有几个,不过没有试出来,不知道哪里有这种文档,要是可以查出来就好了,省得这样试。