关于中文输入选词的事件监听问题(WINDOWS平台)
我现在知道,可以通过监听windows消息中的IME消息WM_IME_STARTCOMPOSITION与WM_IME_ENDCOMPOSITION来标记当前是不是正在进行非直接输入(也就是中文输入)。我试图在自己的程序中,通过这两个消息来确定当前是否正在输入,来进行箭头键,回车键等一些功能键的屏蔽。
在windows10上,测试过多个输入法,百度,QQ,微软拼音,都可以按照这个规范来做。我的程序也能正确运行。
但是使用搜狗输入法就是一个很奇怪的情况。
使用spy++进行消息监控可以发现。
这个输入法的WM_IME_STARTCOMPOSITION是在你确定选词后,和END在同一帧里发出来的。
而对于不选词,直接进行退格或者切换输入法,使得选词条消失则不会有任何END事件。
但是搜狗输入法在所有的输入控件中,都可以保证正确的对功能键进行屏蔽。所以我很好奇,windows标准的输入控件是怎么对功能键进行屏蔽的?