消息传递的问题,欢迎进来讨论!!

inlinefunction 2003-09-11 11:56:45
有一对话框,处理了PreTranslateMessage函数来获得按键F1——F6的消息进行不同功能的处理,一直运行的很好,最近偶在其一功能中加入了一模态对话框,出现的异常,我调试了一下,好象是消息的传递的问题!!但是我把对话框做成非模态的就不会有问题,我猜是对话框从属的问题,不知道是为什么,请高手指教,分不够加!!
...全文
35 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
dawndu 2003-09-13
  • 打赏
  • 举报
回复
非模态的对话框分发消息是不一样的,它在主消息循环之前的,就像这样的
hDlgModeless是非模态对话框的句柄
while(!IsDialogMessage(hDlgModeless,&msg))//分发非模态消息
{
PreTranslateMessage(&msg);//虚函数吧,呵呵
TranslageMessage(&msg);//主消息循环
DispatchMessage(&msg);
}
vcforever 2003-09-11
  • 打赏
  • 举报
回复
PreTranslateMessage函数是在消息分发之前(TranslateMessage函数之前)调用的函数
在这个函数中进行一些消息的重定向操作!
如果你在这之前加入一个模态的对话框,那么就切换到你的模态对话框的窗口处理函数中
去处理消息了,如果你的模态对话框不返回,那么你也就无法执行PreTranslateMessage函数
中的消息操作了,我想问题的原因可能就出现在这里!

在这里我只是提出一点意见,还有待楼主实践!
实践出真知吗!
呵呵……

希望对你有所帮助!
hardstudylulin 2003-09-11
  • 打赏
  • 举报
回复
同意:vcforever(霓裳羽衣)
inlinefunction 2003-09-11
  • 打赏
  • 举报
回复
我也是这样想的,就是没有什么好办法解决,现在只好用非模态对话框顶着!!!

15,978

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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