我在MFC中有2个类,Class1是Dialog Class,包含1个编辑文本和1个按钮。我添加了Class 2(右键单击项目,选择add-> Class,我不确定基类,所以它是默认的“CWnd”)
在第2课中,我实现了一个函数“input”来改变Class 1
中编辑文本的值void Class2::Input()
{
UpdateData(true);
Class1 cl;
cl.edit1 = 10; //edit1 is the variable name of edit text
UpdateData(false);
}
当单击Class1中的按钮时,它会调用Class2 :: Input
但是当我点击按钮时,错误出现“debug assertion failed”(在UpdateData函数失败)
请帮我从Class2访问Class1中的编辑文本 感谢
答案 0 :(得分:1)
您的函数创建一个新的Class1,因此它与调用Input的Class1不是同一个对象。此外,新的Class1是一个没有创建窗口的CWnd,因此任何对其成员的UpdateData调用都会断言,因为窗口及其控件不存在。
你需要的是让Class1通过'这个'到Class2。您可以使用Input函数的参数执行此操作,也可以将其作为参数传递给Class2构造函数。