windowless richedit 无法输入中文
环境:WIN10
RICHEDIT版本:5.50.99.2012
准备工作:
我使用了一个directui库,除了主窗口时带句柄之外,其他所有的控件都是windowless的。
在主窗口上创建了两个windowless richedit,第一个richedit设置使用TSF:
DWORD dw = SSendMessage(EM_GETEDITSTYLE);
dw |= SES_USECTF; //使用TSF
SSendMessage(EM_SETEDITSTYLE, dw, dw);
第二个richedi没有设置使用TSF。
此时两个richedit均可正常使用,可以正常接收用户输入,设置字体格式之类的操作也都是OK的。
重现步骤:
1、当第一个richedit(设置了SES_USECTF)获得焦点,并且把输入法设为WIN10自带的微软拼音,richedit可以正常输入。
2、此时把焦点从第一个richedit切换到第二个richedit(没有设置SES_USECTF),第二个richedit就只能输入中文了,切换输入法也不生效,无法再输入中文。
3、这时只有把焦点切换到别的应用程序,再把焦点切回第二个richedit才能重新输入中文。
4、如果两个richedit均设置了SES_USECTF,则不存在上述问题。
问题:
由于我自定义的一个控件(不是richedit)也要获得输入法输入,但由于第一个richedit设置了SES_USECTF,并且当焦点从第一个richedit切换到我自定义的控件时,输入法只能输入英文,这就导致了我自定义的控件无法获得正确的输入。
请问我要怎样才能让我自定义的控件在任何情况下都能接受输入法的输入呢?
还请各位大神解答。