本文主要是介绍WM_IME_CHAR 与WM_CHAR的区别,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
要理解二者的区别,首先需要清楚: 我们通过键盘所打的字,并不都是全部通过输入法后,转交给程序的。
也就是说: 我们用键盘打的字有些是不经过输入法直接传送到程序中,如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消息。 |
说明:
对于 Unicode 窗口,WM_IME_CHAR 和 WM_CHAR 没有区别,
wParam
都是一个WCHAR
,即输入的字符。对于非 Unicode (DBCS) 窗口,WM_IME_CH
这篇关于WM_IME_CHAR 与WM_CHAR的区别的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!