【问题标题】:Not sure how to UpdateData?不确定如何更新数据?
【发布时间】:2011-09-22 07:01:53
【问题描述】:

语言: C++

开发环境:Microsoft Visual C++

使用的库: MFC

问题:我创建了一个偏好配置应用程序。左侧是一个列表框,其中包含他们可以更改的设置的“父”类别,当他们单击一个时,他们可以更改的设置出现在列表框的右侧,就像在许多大型首选项对话框中一样。 (See screenshot from the creator)

这是我的问题。我很难使用 UpdateData,因为我实际上从未在首选项框上调用 DoModal(),因为它们是父对话框容器的子级,并且它们只是绑定到对话框中的图片控件。我执行设置焦点和显示/隐藏子对话框的组合。

当用户选择“保存这些”时,他们会看到另一个对话框,允许他们检查他们想要保存的特定首选项窗格(以生成 XML 配置文件)。显然,我需要为他们的输入抓取对话框,但是当我调用 UpdateData 时,我总是因为在调用 DoModal() 之前调用 UpdateData 而大喊大叫。

现在我不确定如何获取这些值。我对 MFC 很陌生,这也无济于事。所以就是这样。无论如何,如果任何人都可以提供任何帮助,我将不胜感激。

~乔恩

【问题讨论】:

    标签: visual-c++ mfc dialog modal-dialog


    【解决方案1】:

    您不必调用 DoModal() 即可使用 UpdateData()。我不确定您所说的“大喊大叫”是什么意思。要使用 UpdateData(),您确实需要使用 DDX(另请参阅 code project article)。从您的问题中不清楚您是否已经通过将 dlg 控件 ID 与数据成员相关联来使用 DDX。

    在您的场景中,您可能需要在离开特定对话框时调用 UpdateData(),以将屏幕上的值保存到数据成员。

    您可以考虑的一种可能的替代方法是使用CTreePropSheet,这是一个基于 CPropertySheet 的树控件。您还可以 google CTreePropertySheet 找到更多对话框树控件的实现。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-25
      • 1970-01-01
      • 2018-04-03
      • 1970-01-01
      • 2022-01-25
      相关资源
      最近更新 更多