ユーザーの操作のためにMessageBoxを表示する可能性のあるマルチスレッドアプリケーションがあります。メッセージボックス自体は、ユーザーがアプリのシステムトレイアイコンからコンテキストメニューコマンドを選択した後、ワーカースレッドから表示されるため、ユーザーはメッセージボックスが表示されている間も技術的にアプリを使い続けることができます。これは、ユーザーが「終了」コマンドを発行するまではうまく機能します。その時点で、開いているメッセージボックスを閉じる方法を見つける必要があります。
宿題をして、メッセージボックスのメイン(ダイアログ)ウィンドウのHWNDハンドルを取得できました(この方法を使用)。Spy++を使用してHWNDが正しいことを確認したので、HWND自体は問題ではありません。PostMessage(hMsgBoxWnd, WM_CLOSE, 0, 0);
別のスレッドからメッセージボックスに移動すると、このメッセージが無視されて閉じられません。
ウィンドウハンドルでメッセージボックスを閉じる方法はありますか?