gpt4 book ai didi

c++ - MFC 中的更新数据

转载 作者:太空狗 更新时间:2023-10-29 21:06:52 24 4
gpt4 key购买 nike

语言:C++

开发环境:Microsoft Visual C++

使用的库:MFC

问题:我创建了一个首选项配置应用程序。左侧是一个列表框,其中包含他们可以更改的“父”设置类别,当他们单击其中一个时,他们可以更改的设置会出现在列表框的右侧,就像许多大型首选项对话框一样。我的所有控件都设置了 DDX 数据交换(注意:每个子对话框/首选项页面都有一个 cpp 文件),所以我已经准备好了所有的基础工作。

这是我的问题。我在使用 UpdateData 时遇到了困难,因为我实际上从未在首选项框上调用 DoModal(),因为它们是父对话框容器的子项,并且它们只是绑定(bind)到对话框中的图片控件。当用户单击列表框时,我会结合设置焦点和显示/隐藏子对话框。

当用户选择“保存这些”时,他/她会看到另一个对话框,允许他们检查他们想要保存哪些特定的首选项面板(以生成 XML 配置文件)。显然我需要为他们的输入抓取对话框,但是当程序到达代码中调用 UpdateData 的位置时,程序失败,因为我在调用 DoModal() 之前调用了 UpdateData。

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

最佳答案

就在您显示其中一个子对话框之前,您应该调用它的 UpdateData(FALSE) 函数来填充它的控件。这个应该在外层对话框的OnInitDialog里,在切换类别的代码里也有。在从子对话框切换之前(从类别更改或 OnOK),您应该调用 UpdateData(TRUE) 以从子对话框中拉回更改;如果 UpdateData 返回 FALSE,则不允许更改类别或关闭对话框。

关于c++ - MFC 中的更新数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6494460/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com