MFC编辑框更新

6

我试图更新一个编辑器控件的文本,使用它添加的变量,该变量是一个 CString,但我失败了。

m_sNrAuto = "some text";  
UpdateData(TRUE);

我也尝试使用 UpdateWindow(),但编辑控件仍然是空白的。我知道我可以使用 SetWindowText() 来解决这个问题,但我也看到一些代码片段中没有使用 SetWindowText(),而是通过将一个值传递给相关的 CString 来实现更新。

1个回答

15

尝试使用UpdateData(false);

  • true 表示 控件 => 数据

  • false 表示 数据 => 控件

有时您必须这样做。

UpdateData(true);  // snapshot ALL controls data
m_sNrAuto = "some text";  // tweak the one you actually need updated
UpdateData(false);  // this pushes ALL data, not just the one you tweaked

2
记录一下,该参数被称为“SaveAndValidate”,意思是如果为“true”则保存到变量中。 - Mark Ransom
2
也许您需要在UpdateData(false)之后加上UpdateWindow(); - 这将强制刷新对话框以显示新值。 - serup
正是那个UpdateWindow函数让我终于克服了困难。在按钮处理的长度处理期间,我正在更新编辑控件,但直到按钮处理完成后才会显示出来。最终执行UpdateWindow函数才使状态显示出来。 - El Ronaldo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接