Visual MFC - 从另一个类访问编辑控件

Posted

技术标签:

【中文标题】Visual MFC - 从另一个类访问编辑控件【英文标题】:Visual MFC - Access edit control from another class 【发布时间】:2014-04-07 11:10:21 【问题描述】:

我在 MFC 中有 2 个类,Class1 是具有 1 个编辑文本和 1 个按钮的对话框类。我添加了Class 2(右键项目,选择add->Class,我不确定基类,所以默认是“CWnd”)

在第 2 课中,我实现了一个函数“输入”来更改第 1 课中编辑文本中的值

void Class2::Input()

   UpdateData(true);
   Class1 cl;
   cl.edit1 = 10; //edit1 is the variable name of edit text
   UpdateData(false);


当点击 Class1 中的按钮时,它会调用 Class2::Input

但是当我点击按钮时,出现错误“调试断言失败”(在 UpdateData 函数中失败)

请帮助我从 Class2 访问 Class1 中的编辑文本 谢谢

【问题讨论】:

【参考方案1】:

您的函数创建了一个新的 Class1,因此它与调用 Input 的 Class1 不是同一个对象。此外,新的 Class1 是一个尚未创建其窗口的 CWnd,因此任何像 UpdateData 这样对其成员的调用都会断言,因为该窗口及其控件不存在。

您需要的是 Class1 将“this”传递给 Class2。您可以使用 Input 函数的参数来执行此操作,也可以将其作为参数传递给 Class2 构造函数。

【讨论】:

以上是关于Visual MFC - 从另一个类访问编辑控件的主要内容,如果未能解决你的问题,请参考以下文章

Visual Studio 2019 MFC 应用程序:如何从文本文件中读取并在不同字段/编辑控件中显示字符串?

Visual Studio MFC 在键入/动态时更改编辑控件中的文本

如何从另一个类访问 MFC 中的对话框项?

如何访问 MFC 中的 activex 控件?

CString 在 MFC 中编辑控件

如何从另一个类访问 Winform 文本框控件?