我用的是VS2010
我创建了一个MFC Application,Dialog Based。目的是学习一下创建DDX变量。我想在编辑框里输入文本,然后按OK按钮后弹出对话框显示我输入的文本。 我在对话框上用toolbox画了一个Edit Control控件,就是可以输入文本的那个控件。 然后右击此控件选择了Add Variable,我想给它创建一个DDX变量。取消选中了Control Varible复选框,在Variable Type组合框中输入了CString,在Variable name中输入了m_strMessageText,之后点击了finish。 现在,DDX值变量已经连接到了编辑控件。我打开Class View,定位CHelloDialogDlg类并双击OnBnClickedOk函数,然后修改如下: void CHelloDialogDlg::OnBnClickedOk() { // TODO: Add your control notification handler code here UpdateData(TRUE); AfxMessageBox(m_strMessageText); //OnOK(); //然:这里注释掉了对基类的OnOK函数的调用 } 编译成功,可是运行后,在编辑框里输入文本后按OK键,弹出的窗口中并没有显示我刚才输入的内容。为什么啊?我怀疑是AfxMessageBox这个函数的问题。 后来发现: void CHelloDialogDlg::DoDataExchange(CDataExchange* pDX)
{ CDialog::DoDataExchange(pDX); DDX_Text(pDX, IDC_EDIT1, m_strMessageText); //少了这句,为什么不能自动生成 } 我将control variable复选框勾选后能自动生成DDX_Text(pDX, IDC_EDIT1, m_strMessageText); 但是运行又出错,说IDC_EDIR1未定义????
|
control variable复选框勾选后,选择value