私はMFCとC++を使用していますが、相互作用する必要のある2つのトップレベルダイアログを適切に分離する方法がわかりません。具体的には、ダイアログの1つ(ダイアログXなど)は、他のダイアログ(ダイアログYなど)のボタンクリックに応答してアクションを実行する必要があります。これがコードベースに実装されている現在の方法は、Yのコンストラクターが引数としてXへのポインターを受け取ることです。次に、このポインターを使用して、独自のボタンがクリックされたときにXに対してアクションを実行します。これは、そうでなければ一般的なダイアログになるものに対する不合理な制限のように思われます。私ができることを望んでいたのは、XにYからのボタンクリックメッセージのある種のリスナーを登録させることでした。残念ながら、これが可能であることを示唆するものは何も見つかりませんでした。
私が検討した2つの選択肢:
- カスタムメッセージを登録して、YからXに送信します(高度に結合されています...)
- メッセージをブロードキャストし、Xでリッスンします(過度のようです)
私はMFCに比較的慣れておらず、MFCコミュニティのイディオムやベストプラクティスに特に精通していません。ダイアログを適切に分離する方法についてのアイデアや提案をいただければ幸いです。