我试图从对话框类外部调用我的 MFC 对话框类的非静态函数(它获取编辑框的值并将其作为字符串返回)。
即,我有Dlg.cpp
并且calc.cpp
我想getEditBoxContents()
从calc.cpp
. 我知道要调用一个非静态函数,我应该有一个Dlg
in的元素calc.cpp
才能执行aDlg.getEditBoxContents()
,但是,执行Dlg aDlg = Dlg()
然后执行aDlg.getEditBoxContents()
会给我带来神秘的错误(我确信这不是我应该这样做的方式)。
有人可以指点我正确的方向或给我另一种从对话框类外部获取编辑框内容的方法吗?
感谢 Nik,对我有用的解决方案是:
在非成员类中:
CEx3Dlg *pMainDlg = (CEx3Dlg *)AfxGetMainWnd();
pMainDlg->exp_ListBox.AddString("asd"); //Interact with GUI elements here.