真心请教:RichEdit 控件中汉字输入无法捕捉到消息

HSpider 2012-03-22 02:38:00
我用PreTranslateMessage通过捕获WM_CHAR能得到英文输入,但却得不到中文输入!每次输入中文都直接上屏, PreTranslateMessage 中捕获WM_CHAR的代码没有任何反应,求大神相助!
度娘,狗哥都找过,有类似的问题确没有找到好的解决办法,实在没办法了!人穷分少莫嫌弃!
...全文
94 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
lc36386714 2012-08-22
  • 打赏
  • 举报
回复
怎么我按照你的方法还是不能接收到中文输入的消息呢?
HSpider 2012-03-22
  • 打赏
  • 举报
回复
谢谢 (AaronJie(混混猪)) 猪的全程关注,问题已解决!不过对于解决原理还不是特别清楚,还是欢迎讨论指教!
解决办法如下:
捕捉WM_KEYDOWN消息,然后把消息句柄换成当前对话框(即EDIT父窗口)的句柄,然后就可以接收到了!

if( WM_KEYDOWN == pMsg->message )
{
pMsg->hwnd = m_hWnd;
}

将上面两句代码加入到PreTranslateMessage之后,捕捉WM_CHAR的代码块就能接收到中文输入了!
具体理论还是继续请高人指点!先结贴了!
HSpider 2012-03-22
  • 打赏
  • 举报
回复
试过,也捕捉不到!
jieleiping 2012-03-22
  • 打赏
  • 举报
回复
WM_IME_CHAR消息呢?
HSpider 2012-03-22
  • 打赏
  • 举报
回复
用正常的输入法打出中文字后直接就上屏到控件中去了!查的一些资料都是说会发送两个WM_CHAR 消息的,可PreTranslateMessage里面就是捕捉不到,而英文字符和数字都没有问题! 谢谢回复!
jieleiping 2012-03-22
  • 打赏
  • 举报
回复
我猜想输入中文是要借助第三方的程序,而第三方程序一旦起作用,你的窗口也就失去了焦点,就没有办法捕获。

15,978

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧