2010-03-04 23 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

相关问题