C++ 获取MFC对话框成员变量内容

C++ 获取MFC对话框成员变量内容,c++,visual-c++,mfc,C++,Visual C++,Mfc,我有一个对话框,其中包含绑定到CEdit m_Edit成员变量的文本编辑控件。显示模式后,我需要得到文本编辑的内容 BOOL CPreparationApp::InitInstance() { MyDlg Dlg; m_pMainWnd = &Dlg; Dlg.DoModal(); CString strLine; Dlg.m_edit.GetWindowTextW(strLine); // Debug assertion messa

我有一个对话框,其中包含绑定到CEdit m_Edit成员变量的文本编辑控件。显示模式后,我需要得到文本编辑的内容

BOOL CPreparationApp::InitInstance()

{


    MyDlg Dlg;

    m_pMainWnd = &Dlg;
    Dlg.DoModal();


    CString strLine;
     Dlg.m_edit.GetWindowTextW(strLine); // Debug assertion message

}
Durring
Dlg.m_edit.GetWindowTextW(strLine)我有异常:

---------------------------
Microsoft Visual C++ Runtime Library
---------------------------
Debug Assertion Failed!

Program: C:\Windows\SYSTEM32\mfc110ud.dll
File: f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\wincore.cpp
Line: 1215

For information on how your program can cause an assertion
failure, see the Visual C++ documentation on asserts.

(Press Retry to debug the application)

---------------------------
Abort   Retry   Ignore   
---------------------------

这个例外意味着什么?如何从m_edit复制字符串

在DoModal之后,编辑框被销毁。所以你不能访问它

您必须将编辑框中的文本保存到类似于OnOK()的函数中的CString成员变量中。我假设对话框类中有OnOK()方法

在dialog类中,您将拥有:

public:

CString m_editText;
在OnOK()中,您可以编写:

m_edit.GetWindowTextW(m_editText);
调用DoModal后,您可以使用

Dlg.m_editText
您可以通过使用Get&Set函数来获取m_editText值,而不是访问公共成员变量m_editText(这不是一个好的设计),从而改进此处的代码。

可能重复的