我有一个多线程应用程序,它可能会显示一个 MessageBox 以供用户交互。在用户从应用程序的系统托盘图标中选择上下文菜单命令后,消息框本身会从工作线程中显示,因此从技术上讲,用户可以在显示消息框时继续使用该应用程序。这很有效,直到用户发出“退出”命令,此时我需要找到一种方法来关闭任何打开的消息框。
我做了功课,并且能够获得消息框的主(对话框)窗口的 HWND 句柄(使用此方法。)我使用 Spy++ 检查了 HWND 是否正确,因此 HWND 本身不是问题。发生的情况是,当我PostMessage(hMsgBoxWnd, WM_CLOSE, 0, 0);
从另一个线程到消息框时,它只是忽略此消息并且不会关闭。
知道如何通过窗口句柄关闭消息框吗?