Mfc 如何在对话之间进行沟通?

Mfc 如何在对话之间进行沟通?,mfc,dialog,communication,Mfc,Dialog,Communication,我正在开发一个小型的MFC应用程序。由于我是MFC新手,我不熟悉所有的用户控件和类…总之,我的问题是“如何在两个对话框窗口之间进行通信”。通常在C中会有一个面板,以便我们可以分别隐藏和保存表单中的数据,但我不确定,我们如何在Mfc中做到这一点。实际上,我是通过附加属性页来使用PropertySheet做到这一点的,因为我有一些限制……因此我很想知道是否有其他方法可以实现这一点。如果有人知道这一点,请帮助我……最简单的方法之一是在需要通信的表单之间传递引用。例如,您可以有一个“主”窗体,它创建两个

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

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

您是在构建对话框还是SDI/MDI类型的应用程序

如果对话框窗口来自两个不同的进程,则可以使用已注册消息进行进程间通信:

如果对话框窗口来自SDI或MDI应用程序,则Visual Studio为您生成的代码中将有一个从CWinApp或CWinAppEx派生的类:。还将有一个派生自CFrameWnd或CFrameWndEx的类(很可能称为CMainFrame):

你可以使用这两种方式中的任何一种(取决于你谈论的是哪种类型的交流,使用其中一种或另一种或两者都有意义),就像使用C#panel一样

如果对话框窗口都来自对话框应用程序,那么您可以像使用C#panel一样在应用程序中使用CDialog派生类


如果对话框只需要彼此调用一个方法来更新数据或类似的东西(并且来自同一个应用程序),您可以将指针传递给彼此。

嘿,迈克,谢谢你的回复,你能给我举个例子吗,或者你能给我推荐一些与此相关的好文章吗……我非常感谢你的帮助,张贴代码。另外,当你说它不工作时,你的意思是它编译了,但是调用没有发生;还是说它不能编译?