要理解二者的区别,首先需要清楚: 我们通过键盘所打的字,并不都是全部通过输入法后,转交给程序的。
也就是说: 我们用键盘打的字有些是不经过输入法直接传送到程序中,如1、2、3这样的数字 还有ABC英文字母,回车 空格等
有些是经过输入法转交给程序的,如中文
明白这点后,WM_IME_CHAR与WM_CHAR的区别就容易理解了。
需要说明的是: 数字和英文字母 你可以不通过输入法直接输入,也可以通过输入法进行输入
WM_IME_CHAR: 所有经由输入法产生的字符都会产生WM_IME_CHAR消息。 DefWindowProc会将WM_IME_CHAR转换为WM_CHAR消息
WM_CHAR: 未经输入法而直接送人程序中的字符会响应WM_CHAR消息。 |