WM_CHAR必须由WM_KEYDOWN经过TranslateMessage得到,如果你当前拥有焦点的控件无法进行输入,则收不到WM_CHAR消息
然WM_KEYDOWN消息是当一个非系统键被按下时该消息发送给具有键盘焦点的窗口。
也就是说具有焦点的窗口才能响应WM_KEYDOWN .MFC基础对话框的默认的焦点在确定这个按钮上,用TABL移动焦点,也只能在确定和取消这两个按钮上晃动而已。到不了主窗体上来。
如果想要主窗体响应WM_CHAR 消息,必须重载PreTranslateMessage来相应的实现。
本文解析了MFC框架下WM_CHAR消息的工作原理及如何让窗口响应此消息。指出WM_CHAR消息需通过WM_KEYDOWN消息转换获得,并强调只有拥有焦点的窗口才能接收到WM_KEYDOWN消息。为使主窗体能接收WM_CHAR消息,需重载PreTranslateMessage方法。

2万+

被折叠的 条评论
为什么被折叠?



