一直搞不懂ImmGetCandidateList()
的运作方式,总是返回0,MSDN上也没说得很明白,GetLastError()
也不提示错误,今天测试出了大概的运作方式(Win11上测试,微软拼音输入法)。
先插播一个大草事件,微软自己用这个函数的Demo也一样返回0,不能正常工作。
满足以下几点,这个应该就能正常工作了:
- 不渲染候选词弹窗,即当收到
WM_IME_SETCONTEXT
消息时,lParam & ISC_SHOWUICANDIDATEWINDOW == 0
- 响应
WM_IME_SETCONTEXT
时,一定要记得返回DefWindowProc()
!!!
折腾这么久,吐了。