[英]CString value changing after calling UpdateData(TRUE)
我有一个应用程序,我有一个编辑框。 此编辑框允许用户输入最多20个字符的任何字符。
现在我已经编写了一个函数来处理为事件更改的编辑
ON_EN_CHANGE
void CDlgFloatingEdit::OnEditChanged() { UpdateData(TRUE); }
现在当我在调试时输入20个字符的文本值时,我发现在此函数中调用UpdateData(TRUE)之前,CString的值被正确保存,一旦调用UpdateData(TRUE),值就会被设置为NULL 。
当我输入所有字符为4然后它正常工作时的另一个观察。 但是当我将所有字符输入为1时,该值将设置为NULL。
我没有得到任何关于为什么会发生这种情况的线索。
UpdateData将始终将控件中的数据复制到对话框数据成员中,即其功能。 它将立即应用任何DDV数据验证,包括字段上的20个字符限制。 如果验证失败,它应该显示错误,但即使它没有,它也可能清除CString数据成员。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.