2010-03-04 22 views
1

我正在處理一個小的MFC應用程序..因爲我是MFC新手我不熟悉所有的用戶控件和類......反正我的問題是「如何在2個對話窗口之間進行通信」..通常在C#中將是一個面板,因此我們可以分別隱藏和保存數據,但我不確定,我們如何在Mfc中做到這一點。實際上,我通過附加屬性頁使用PropertySheet來做到這一點,因爲我有一些限制。 ..所以我很想知道是否有其他方式可以實現這一點。如果有人知道這一點,請幫助我......如何在對話框之間進行通信?

回答

2

您正在構建一個Dialog或SDI/MDI類型的應用程序嗎?

如果對話窗口來自兩個不同的進程,那麼您可以使用已註冊的消息進行進程間通信:http://msdn.microsoft.com/en-us/library/ms644947%28VS.85%29.aspx

如果對話框窗口來自SDI或MDI應用程序,那麼在Visual Studio爲您生成的代碼中會有一個從CWinApp或CWinAppEx派生的類:http://msdn.microsoft.com/en-us/library/362kaah4%28VS.80%29.aspx。還將有一個派生自CFrameWnd或CFrameWndEx的類(最有可能稱爲CMainFrame):http://msdn.microsoft.com/en-us/library/za93adby%28VS.80%29.aspx

您可以使用其中的任何一種(取決於您正在討論的通信類型可能適合使用其中一種或另一種或兩種),就像您將使用C#面板一樣。

如果對話框窗口都來自Dialog應用程序,那麼您可以在應用程序中使用CDialog派生類,就像您將使用C#面板一樣。

如果對話只需要調用另一個方法來更新數據或類似的東西(並且來自同一個應用程序),那麼您可以將它們的指針傳遞給對方。

+0

我通過指針,但它不工作..如果你想要我可以發佈代碼.... – kiddo

+1

是的,發佈代碼。另外,當你說它不起作用時,你的意思是它編譯,但是這些調用不會發生;或者你的意思是它不能編譯? – adam

0

最簡單的方法之一是在表單之間傳遞引用需要溝通。例如,您可以創建一個「主」表單,該表單創建兩個「子」表單並將變量傳遞給引用其他表單的每個表單(在實例化上)。

+0

嗨邁克,謝謝你的回覆,你能告訴我一個例子,或者你可以給我介紹一些很好的文章相關的...我真的很感謝你的幫助 – kiddo

相關問題