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

时间:2014-04-07 11:10:21

标签: c++ mfc

我在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中的编辑文本 感谢

1 个答案:

答案 0 :(得分:1)

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

你需要的是让Class1通过'这个'到Class2。您可以使用Input函数的参数执行此操作,也可以将其作为参数传递给Class2构造函数。