[英]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.