在使用序列化加载变量后更新CListCtrl

时间:2013-11-19 06:59:03

标签: c++ serialization mfc clistctrl

所以我在MFC中保存了一个带有Seri​​alize的Variaable

void CDatenbankDoc::Serialize(CArchive& ar)
{
    if (ar.IsStoring())
    {
        ar << Eintrag[0].name;
    }
    else
    {
        ar >> Eintrag[0].name;
    }
}

每当我加载变量时,我都必须在我的CMyView类中调用一个函数。

void CDatenbankView::InsertAfterOpen()
{
    //DOC
    CDatenbankDoc* pDoc = CDatenbankDoc::GetDoc ();
    ASSERT_VALID (pDoc);

    i = m_List.InsertItem (i, pDoc->Eintrag[i].name);
}

它更新我的CListCtrl。 问题是,我无法使用pView->InsertAfterOpen();在我的Serialize函数中调用该函数。每当我这样做时,变量都没有价值。我真的不知道为什么。 有谁知道,加载变量后如何更新CListCtrl?

1 个答案:

答案 0 :(得分:0)

在MFC文档/视图架构中,当文档更改数据时,您调用UpdateAllViews。这会导致在与文档关联的每个视图中调用OnUpdate。所以把代码放在你的视图OnUpdate中。您可以更新那里的所有内容,或使用lHint参数更新特定内容。