如何在对话框之间进行通信?

时间:2010-03-04 04:14:14

标签: mfc dialog communication

我正在开发一个小型MFC应用程序..因为我是MFC的新手我不熟悉所有用户控件和类......反正我的问题是“如何在2个对话框窗口之间进行通信”..通常在C#中会有一个面板,所以我们可以分别隐藏和保存表格中的数据,但我不确定,我们如何在Mfc中做到这一点。实际上我通过附加属性页面使用PropertySheet做到了这一点,因为我有一些限制...所以我很想知道是否还有其他办法可以实现这一目标。如果有人知道这一点,请帮助我....

2 个答案:

答案 0 :(得分: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#面板一样。

如果对话框只需要在另一个方法中调用一个方法来更新数据或类似的东西(并且来自同一个应用程序),你可以将它们指向彼此。

答案 1 :(得分:0)

最简单的方法之一是在需要通信的表单之间传递引用。例如,您可以使用“主”表单创建两个“子”表单,并将变量传递给引用另一个表单的每个表单(在实例化中)。