接收MFC对话框的PostMessage消息

时间:2013-08-22 16:10:07

标签: c++ multithreading mfc

我有一个对话框,用户可以在其中输入信息,然后按“执行”按钮。当他们按下此按钮时,我禁用表单元素(按钮等)并使用AfxBeginThread( ... )创建工作线程。工作线程完成后,我希望它向UI线程发送消息,以便重新启用表单。我正在使用::PostMessage( ... )发送消息,但我找不到如何截取这些消息。

我已经在线搜索了Link #1Link #2Link #3)但我找不到一个可理解的代码示例来实现我自己的消息监听器。在标题中我可以看到一些疯狂的定义语句(以DECLARE_MESSAGE_MAP()开头),看起来它可能与它有关,但我无法弄明白。

非常感谢任何帮助。感谢。

1 个答案:

答案 0 :(得分:3)

消息映射是一个表。对于您感兴趣的每条消息,它包含消息和指向消息处理函数的函数指针。要向地图添加自定义消息,请向表中添加ON_MESSAGE条目。从工作线程执行此操作的教程示例如下:

http://vcfaq.mvps.org/mfc/12.htm