出现"m_strText": 不是 "CDocument" 的成员的错误
时间: 2023-07-24 19:13:56 浏览: 50
非常抱歉,我之前给出的代码有误。在 MFC 的文档类中,确实没有名为 "m_strText" 的成员变量。请使用以下修正的代码示例:
首先,在你的文档类中添加一个成员变量来存储文本内容,例如:
```cpp
CString m_strText; // 存储文本内容的变量
```
然后,在你的文档类中重写以下几个函数:
```cpp
BOOL CMyDoc::OnNewDocument()
{
if (!CDocument::OnNewDocument())
return FALSE;
// 初始化文本内容
m_strText = "Hello, World!";
return TRUE;
}
void CMyDoc::Serialize(CArchive& ar)
{
if (ar.IsStoring())
{
// 将文本内容保存到存档中
ar << m_strText;
}
else
{
// 从存档中加载文本内容
ar >> m_strText;
}
}
```
接下来,在你的视图类中添加一个编辑框控件来显示和修改文本内容。你可以使用 ClassWizard 工具来添加一个编辑框控件,并为它生成一个成员变量,例如:
```cpp
CEdit m_editText; // 编辑框控件的成员变量
```
然后,在你的视图类的 OnInitialUpdate 函数中,将编辑框与文档类中的文本内容关联起来,以便显示和修改文本内容,例如:
```cpp
void CMyView::OnInitialUpdate()
{
CView::OnInitialUpdate();
// 关联编辑框与文本内容
m_editText.SetWindowText(m_pDocument->m_strText);
}
```
最后,在视图类中重写以下几个函数,以便在编辑框中修改文本内容时更新文档类中的文本内容:
```cpp
void CMyView::OnUpdate(CView* pSender, LPARAM lHint, CObject* pHint)
{
// 更新编辑框中的文本内容
m_editText.GetWindowText(m_pDocument->m_strText);
}
void CMyView::OnEnChangeEditText()
{
CString strText;
// 获取编辑框中的文本内容
m_editText.GetWindowText(strText);
// 更新文档类中的文本内容
m_pDocument->m_strText = strText;
// 通知视图进行更新
GetDocument()->UpdateAllViews(this);
}
```
通过以上修正后的代码,你应该能够在 MFC 多文档应用程序中实现新建文档中显示和修改文本内容的功能了。再次对之前的错误表示抱歉,希望这次能够帮到你。