2011-06-24 38 views
2

语言: C++不知道如何更新数据?

开发环境:微软的Visual C++

用于图书馆: MFC

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

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

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

现在我真的不知道如何去获取价值。这对MFC我很陌生也没有帮助。所以就是这样。无论如何,我会很感激任何人都可以提供的帮助。

〜乔恩

回答

2

你不必调用的DoModal()才能使用的UpdateData()。我不确定你的意思是“吼叫”。要使用UpdateData(),您需要使用DDX(另请参阅code project article)。从你的问题来看,你是否已经通过将dlg控制id与数据成员关联来使用DDX并不清楚。

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

您可以考虑的另一种替代方法是使用基于CPropertySheet的树控制CTreePropSheet。您也可以通过谷歌CTreePropertySheet查找对话框树控件的更多实现。

相关问题