如何让线程截获键盘消息

当光标停在edit控件上时,敲击键盘时,线程不响应键盘消息,如何实现让edit控件响应数字按键消息,让线程响应其它字母按键产生的消息?

谢谢!

作者: shengzhaono1   发布时间: 2011-06-16

你这个应该是焦点的问题,想办法将焦点移到线程中去,不过,你的线程有窗口吗?

作者: wltg2001   发布时间: 2011-06-16

引用 1 楼 wltg2001 的回复:

你这个应该是焦点的问题,想办法将焦点移到线程中去,不过,你的线程有窗口吗?

有窗口,用鼠标点击那个窗口也无法把焦点改变。
该窗口是把static text的句柄传给仿真线程开启的窗口

作者: shengzhaono1   发布时间: 2011-06-16

PreTranslateMessage可以截获主窗口消息吧

作者: lifesider   发布时间: 2011-06-16

消息都是线程处理的,edit控件响应消息的窗口函数也是线程执行的。
如果焦点在某个控件上,那么所有键盘消息最终都会到那个控件的窗口函数中处理,你可以继承控件并重载WindowProc消息处理函数。

作者: kyotrue   发布时间: 2011-06-16

引用 4 楼 kyotrue 的回复:

消息都是线程处理的,edit控件响应消息的窗口函数也是线程执行的。
如果焦点在某个控件上,那么所有键盘消息最终都会到那个控件的窗口函数中处理,你可以继承控件并重载WindowProc消息处理函数。

怎么有人说用钩子呢

作者: shengzhaono1   发布时间: 2011-06-16

引用 5 楼 shengzhaono1 的回复:
引用 4 楼 kyotrue 的回复:

消息都是线程处理的,edit控件响应消息的窗口函数也是线程执行的。
如果焦点在某个控件上,那么所有键盘消息最终都会到那个控件的窗口函数中处理,你可以继承控件并重载WindowProc消息处理函数。

怎么有人说用钩子呢

用钩子也是一个不错的做法

作者: wltg2001   发布时间: 2011-06-16

引用 5 楼 shengzhaono1 的回复:
引用 4 楼 kyotrue 的回复:

消息都是线程处理的,edit控件响应消息的窗口函数也是线程执行的。
如果焦点在某个控件上,那么所有键盘消息最终都会到那个控件的窗口函数中处理,你可以继承控件并重载WindowProc消息处理函数。

怎么有人说用钩子呢


你现在连Windows消息及至都没搞多清楚,用钩子跨度太大了。

作者: kyotrue   发布时间: 2011-06-16

没必要用钩子
把你的代码弄上来

作者: Lactoferrin   发布时间: 2011-06-16