0

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

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

任何帮助深表感谢。谢谢。

4

1 回答 1

3

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

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

于 2013-08-22T16:17:46.743 回答