2
我正在使用MFC和C++,但我不確定如何正確解耦需要彼此交互的兩個頂層對話框。具體來說,其中一個對話框(比如對話框X)應該執行一個動作來響應另一個對話框上的按鈕單擊(比如對話框Y)。目前在代碼庫中實現的方式是,Y的構造函數將一個指向X的指針作爲參數。然後使用此指針在單擊其自己的按鈕時對X執行操作。這看起來像是一個不合理的限制,否則將是一個通用的對話框。我希望能夠做的是讓X註冊某種監聽器來收聽來自Y的按鈕點擊消息。不幸的是,我還沒有發現任何暗示這是可能的東西。我已經考慮解耦頂層MFC對話框
兩種選擇:
- 註冊一個自定義的消息,並與Y發送到X(高度耦合的...)
- 廣播消息,並在X聽它(似乎過高)
我對MFC比較陌生,不太熟悉MFC社區的習語或最佳實踐。我非常感謝有關如何正確分離對話的任何想法或建議。
觀察員+1也爲觀察者 –
+1 – patriiice