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

Posted

技术标签:

【中文标题】使用序列化加载变量后更新 CListCtrl【英文标题】:Update CListCtrl after loading Variable with serialization 【发布时间】:2013-11-19 06:59:02 【问题描述】:

所以我在 MFC 中使用 Serialize 保存了一个变量

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-&gt;InsertAfterOpen(); 在我的序列化函数中调用该函数。每当我这样做时,变量都没有值。我真的不知道为什么。 有谁知道,加载变量后如何更新 CListCtrl?

【问题讨论】:

【参考方案1】:

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

【讨论】:

以上是关于使用序列化加载变量后更新 CListCtrl的主要内容,如果未能解决你的问题,请参考以下文章

变量更改后Angular 5 HTML未更新

关于服务重新加载后无效问题的总结

保存在程序启动 (WFA) C# 时加载的变量

颤振更新文本小部件变量而无需重新加载

Unity如何使用从json字符串加载的变量作为更新部分的输入

Java序列化后isXXX变量没有了