首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

多线程和模态对话框有关问题

2014-01-14 
多线程和模态对话框问题问题1.有一个串口辅助线程,当串口接收到数据的时候给主线程发送消息,这时候,如果主

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

问题2.
  当主对话框弹出了一个模态对话框1之后,辅助线程再用PostMessage给主对话框发送消息,这时候主对话框会处理该消息,并且再弹出一个对话框2,不是应该模态对话框1会让主对话框阻塞么,怎么主对话框还会处理消息呢?

[解决办法]
 GetActiveWindow 判断当前激活窗口, GetParent 判断父子关系

有消息当然还得处理啊,必须绘制窗口

[解决办法]
模式对话框并不是堵塞所有东西啊。
[解决办法]
这两个问题其实是一个问题,楼主没有理解windows窗口消息模型。

所谓模态对话框,其实是类似这样的代码。

showwindow(模态窗口句柄)
while(GetMessage(&msg,,,)) {
    TranslateMessage ...
    DispatchMessage ...
}

而响应sendmessage,就是在getmessage里做的,而响应postmessage是在dispatchmessage里做的。

就是说,虽说是模态,其实只是在showwindow后面开了一个消息处理的循环,让流程不往下走,消息还是会被处理的。




热点排行