繁体   English   中英

调用UpdateData后,CString值发生变化(TRUE)

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM