【发布时间】:2021-07-18 14:46:09
【问题描述】:
Microsoft 有一个 knowledge base article 描述如何修改 ATL .exe 中的消息循环,以便无模式对话框可以接收适当的消息。
如果您可能有多个无模式对话框,并且您不知道在任何给定时间可能存在哪些对话框,我想知道如何优雅地做到这一点。就像 .exe 可能托管几个不同的 COM 类,每个类都有不同的对话框,谁知道可能会实例化哪一个。
您是否会创建一个全局 hwnd 集,并让每个对话框类在创建时将其 hwnd 放入该集中,然后让消息循环遍历调用 IsDialogMessage(和 TranslateAccelerator)的集?
【问题讨论】:
标签: winapi dialog atl out-of-process message-loop