当我尝试使用如下代码将控件内容绑定到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,有人能帮我吗?
发布于 2016-01-14 04:36:09
创建控制变量时,由CDialogEx::OnInitDialog();调用的DoDataExchange()对其进行初始化
从那时起,您可以使用CEdit m_Name;来获取或设置您想要的数据。
使用" data“变量,不存在自动同步:您需要调用UpdateData(FALSE);将数据从成员变量移动到控件,或者调用UpdateData(TRUE); -从控件移动到成员变量。BTW是由OnOk()的默认实现完成的。
https://stackoverflow.com/questions/34774068
复制相似问题