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

lovestxu 2009-08-28 10:19:35
PreTranslateMessage函数响应消息的问题,比如我按下ESC键,我要在PreTranslateMessage函数中处里pMsg-> wParam == VK_ESCAPE的情况。问题是我现在在一个主对话框上有很多子对话框,子对话框上又有很子对话框,就是很多层了,我是想知道我按下ESC键时到底是那一层可以接获到VK_ESCAPE消息,我发现有时是主对话框,又时又是其他子对话框。想问一下这按下ESC键VK_ESCAPE消息是怎么确定发到哪个对话框上去的?是获得焦点的窗口?是最上面的窗口?
...全文
97 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
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
  • 打赏
  • 举报
回复
是逐层转发的

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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