PreTranslateMessage函数是怎么响应消息的?

lovestxu 2009-08-28 10:19:35
PreTranslateMessage函数响应消息的问题,比如我按下ESC键,我要在PreTranslateMessage函数中处里pMsg-> wParam == VK_ESCAPE的情况。问题是我现在在一个主对话框上有很多子对话框,子对话框上又有很子对话框,就是很多层了,我是想知道我按下ESC键时到底是那一层可以接获到VK_ESCAPE消息,我发现有时是主对话框,又时又是其他子对话框。想问一下这按下ESC键VK_ESCAPE消息是怎么确定发到哪个对话框上去的?是获得焦点的窗口?是最上面的窗口?
...全文
63 点赞 收藏 4
写回复
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
lovestxu 2009-08-28
[Quote=引用 2 楼 yuhudie203 的回复:]
你的响应函数写在那就相应那块的 如果是响应主对话框的PreTranslateMessage则截获主对话框的VK_ESCAPE
[/Quote]
如果子对框层次多,有时在主对话框上根本截不到,某个子对话框到能截到,我就是不知什情况下哪个对话框能截到
回复
youyou6115 2009-08-28
你可以在PreTranslateMessage函数里截获这个消息,然后用SendMessage发往你指定的对话框里。::SendMessage(hDlg,WM_CHAR,'E',pMsg->lParam),第一个参数为指定对话框的句柄
回复
yuhudie203 2009-08-28
你的响应函数写在那就相应那块的 如果是响应主对话框的PreTranslateMessage则截获主对话框的VK_ESCAPE
回复
GMingZ 2009-08-28
是逐层转发的
回复
发动态
发帖子
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
社区公告
暂无公告