如何查找谁生成了一条Windows消息

时间:2011-02-06 20:58:25

标签: mfc windows-messages

我们有一个非常庞大,复杂的MFC应用程序。 出于某种原因,运行我们的应用程序的特定模式是向窗口生成WM_SIZE消息。它不应该发生并且正在扼杀性能。 我可以看到消息得到处理。 如何在代码中找到生成窗口消息的内容?

注意:当我们将一个性能监视工具挂在应用程序中时,它往往会发生。所以它可能是第三方工具 但它只发生在这种特定的操作模式中,所以它可能是某种奇怪的交互。

2 个答案:

答案 0 :(得分:1)

您可以看到消息映射,以指定已映射所有窗口onSize。

作为一种“不优雅”的替代方案,您可以在PreTranslateMessage中处理WM_ONSIZE,并使用在PreTranslateMessage中传递的pMsg结构的hwnd成员来查看窗口句柄。

答案 1 :(得分:0)

知道谁发送邮件会有什么帮助?我倾向于关注一个解决方案,例如当检测到雪崩的此类消息时,消息的延迟处理(假设此处理负责执行命中)。

e.g。如果在x毫秒内收到太多消息,则可能决定启动计时器并仅处理计时器过去时收到的最后一条消息。这样,您每x毫秒处理最多一条消息而不是每条消息。