对话框的按键处理 PreTranslateMessage、OnKeyDown和OnChar
2012-12-10 23:19
302 查看
1、MFC对话框不能响应OnKeyDown和OnChar函数
(1)现象
在MFC的对话框中,映射了WM_CHAR 和WM_KEYDOWN 消息后,但是对话框不能响应OnKeyDown和OnChar函数(2)原因
因为MFC在进行设计的时候,这两个消息被对话框上的控件截获了,不能到达这两个消息响应函数,对于OnKeyDown来说,只要把对话框上的控件都删除了,就可以接收到WM_KEYDOWN消息,但是还是接收不到WM_CHAR消息(3)解决
重载PreTranslateMessage这个函数;在里面加上SendMessage(pMsg->message,pMsg->wParam,pMsg->lParam);这一句后,对话框的OnKeyDown和OnChar函数就生效了。OnKeyDown在OnChar之前处理。2.WM_KEYDOWN、WM_KEYUP和WM_CHAR
三个消息的执行顺序为WM_KEYDOWN、WM_CHAR、WM_KEYUP相关文章推荐
- 对话框的按键处理 PreTranslateMessage、OnKeyDown和OnChar
- 对话框的按键处理 PreTranslateMessage、OnKeyDown和OnChar
- MFC OnChar、OnKeyDown、OnKeyUp和PreTranslateMessage的关系
- 在PreTranslateMessage中处理mouse move的消息,解决Picture Control设置notify为true之后与对话框OnMouseMove冲突的问题
- VC6.0中对消息的特殊处理--PreTranslateMessage说明
- 在MFC中手动添加消息处理函数PreTranslateMessage和自定义消息
- PreTranslateMessage 处理键盘消息
- MFC中使用PreTranslateMessage执行两次的处理
- 在MFC中手动添加消息处理函数PreTranslateMessage
- PreTranslateMessage()函数捕获键盘按键消息
- PreTranslateMessage()函数捕获键盘按键消息
- 基于对话框的MFC程序中捕捉WM_KEYDOWN消息的方法----PreTranslateMessage(MSG* pMsg) 转帖
- MFC中的PreTranslateMessage 的处理,意思就是在过滤之前的一些消息的处理
- 对话框不响应WM_KEYDOWN消息,可以通过重载BOOL PreTranslateMessage(MSG * pMsg)来实现
- 在对话框上拖动按钮并移动该按钮(改写CXXButton::PreTranslateMessage,然后MoveWindow)
- VC6.0中对消息的特殊处理--PreTranslateMessage说明
- 在MFC中手动添加消息处理函数PreTranslateMessage
- MFC中使用PreTranslateMessage执行两次的处理
- PreTranslateMessage处理键盘消息
- 在MFC中手动添加消息处理函数PreTranslateMessage和自定义消息