多线程和模态对话框问题

hfwoaiwfy 2013-12-13 04:38:49
问题1.
有一个串口辅助线程,当串口接收到数据的时候给主线程发送消息,这时候,如果主线程弹出了一个模态对话框,怎么让串口辅助线程将消息直接发送到该模态对话框去?

问题2.
当主对话框弹出了一个模态对话框1之后,辅助线程再用PostMessage给主对话框发送消息,这时候主对话框会处理该消息,并且再弹出一个对话框2,不是应该模态对话框1会让主对话框阻塞么,怎么主对话框还会处理消息呢?
...全文
234 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
hfwoaiwfy 2014-01-14
  • 打赏
  • 举报
回复
谢谢大家的帮助
「已注销」 2013-12-14
  • 打赏
  • 举报
回复
这两个问题其实是一个问题,楼主没有理解windows窗口消息模型。 所谓模态对话框,其实是类似这样的代码。 showwindow(模态窗口句柄) while(GetMessage(&msg,,,)) { TranslateMessage ... DispatchMessage ... } 而响应sendmessage,就是在getmessage里做的,而响应postmessage是在dispatchmessage里做的。 就是说,虽说是模态,其实只是在showwindow后面开了一个消息处理的循环,让流程不往下走,消息还是会被处理的。
快乐鹦鹉 2013-12-13
  • 打赏
  • 举报
回复
模式对话框并不是堵塞所有东西啊。
hfwoaiwfy 2013-12-13
  • 打赏
  • 举报
回复
当前激活窗口 和 当前获取焦点的窗口 是一个概念吗
zgl7903 2013-12-13
  • 打赏
  • 举报
回复
GetActiveWindow 判断当前激活窗口, GetParent 判断父子关系 有消息当然还得处理啊,必须绘制窗口

15,472

社区成员

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

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