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 应用程序:如何从文本文件中读取并在不同字段/编辑控件中显示字符串?