MFC无法在Dialog中找到GetDocument()

时间:2014-05-18 16:26:38

标签: c++ mfc

我是MFC的新手,我想在Dialog中获取一些数据,但这不起作用,

CTestDoc* pDoc=GetDocument();
pDoc->Get(...);

我谷歌并找到仅在CView中使用的GetDocument()。 所以我试试这个并且确实有效:

CMainFrame *pMain=(CMainFrame *)AfxGetApp()->m_pMainWnd; 
CTestView *pView=(CTestView *)pMain->GetActiveView();
m_name=pView->v_name;

但我不认为这是一个很好的解决方案,所以我想知道是否有任何功能可以解决这个问题?谢谢。

2 个答案:

答案 0 :(得分:1)

您没有说出对话框的功能,但可能需要将此数据传递给对话框,而不是让对话框直接访问文档数据。这有助于使对话更加孤立,更有可能在其他程序中使用。

我会看一下显示对话框的命令。它在视图中吗?如果是这样,那么您可以传递对话框所需的文档数据。如果没有,那么您发布的代码可能仍然有意义。无论哪种方式,您应该找到所需的文档信息,然后将其传递给对话框。

如果没有必要,我会避免让对话框直接知道文档。

答案 1 :(得分:0)

如果要从对话框中获取数据,请先设置数据,然后再获取数据。

例如:

CString save;
filePath.GetWindowsText(save);

richBox1.AddString(save); // to display in another box