簡體   English   中英

獲取MFC對話框成員變量內容

[英]Get MFC dialog member variable content

我有一個對話框,其中包含綁定到CEdit m_edit成員變量的Text 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()方法。

在對話框類中,您將擁有:

public:

CString m_editText;

在OnOK()中,您將編寫:

m_edit.GetWindowTextW(m_editText);

調用DoModal之后,您可以使用

Dlg.m_editText

您可以通過具有用於獲取m_editText值的Get&Set函數而不是訪問公共成員變量m_editText(這不是一個好的設計)來在此處改進代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM