2009-09-17 115 views

回答

3

典型的MFC应用程序将具有Document-View-Frame架构。数据存储在Document对象中,并全局访问。你可以通过AfxGetMainWnd()来访问它。

AfxGetApp()还会为您提供一个指向您的主应用程序的指针,如果您不使用Document View架构,这是另一个存储数据的好地方。如果有大量数据,则可以构造一个类来保存数据,然后将实例作为成员变量添加到项目中的CWinApp。

另一个选项,我不建议,但我已经看到,将对话框本身作为CWinApp中的成员变量,然后每个对话框都可以引用其他对话框。基本上,用户点击“确定”,但对话框消失,但不会被删除。这意味着他们输入的所有数据仍可通过对话框变量访问。

1

有很多方法可以在对话框之间共享数据。您可能需要更具体地了解您的需求。

  1. 将其存储在全局变量中。
  2. 将其保存在thread local storage(TLS)中。
  3. 让一个对话框通过SendMessage()PostMessage()发送窗口消息。

事情从这里变得更加复杂。

相关问题