windows 如何准确地决定 SendMessage 应该返回 - 也就是说,它如何决定接收线程已完成对发送的消息的处理?
详细场景:我让线程 A 使用 SendMessage 向线程 B 发送一个线程。显然,直到线程 B 处理完消息,SendMessage 才会返回。线程B弹出一个对话框,开始抽消息。在我的场景中,队列上有一条 WM_KILLFOCUS 消息,由线程 B 抽取。结果是线程 B 上的 WM_COMMAND 消息。线程 B 将此 WM_COMMAND 消息传递给默认窗口 proc。当它这样做时,SendMessage 返回到线程 A,即使原始消息还没有完成处理!到底是怎么回事?看起来默认窗口进程以某种方式混淆了窗口,使其认为原始发送的消息已完成。
那么有没有已知的场景,其中泵送消息和调用默认窗口 proc 可以欺骗 SendMessage 返回?
谢谢!菲尔