当我尝试使用
之类的代码将控件内容绑定到CString
时
CString m_Name;
...
DDX_Text(pDX, IDC_Name, m_Name);
...
print(m_Name);
它似乎不起作用 - 打印m_Name什么都不打印。但是,如果我使用一个控件,这似乎有点矫枉过正,它可以正常工作:
CEdit m_Name;
...
DDX_Control(pDX, IDC_Name, m_Name);
...
CString val;
m_Name.GetWindowText(val);
print(val);
使用DDX_Control
可以解决我的问题,但我不能帮助我感到误解DDX_Text
,有人可以提供帮助吗?
答案 0 :(得分:3)
创建控制变量时,它由DoDataExchange()
初始化,由CDialogEx::OnInitDialog();
从那时起,您可以使用CEdit m_Name;
来获取或设置数据。
使用“data”变量,没有自动同步:您需要调用UpdateData(FALSE);
将数据从成员变量移动到控件或UpdateData(TRUE);
- 从控件移动到成员变量。这是BTW,由OnOk()
的默认实现完成。