使用序列化加载变量后更新 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->InsertAfterOpen();
在我的序列化函数中调用该函数。每当我这样做时,变量都没有值。我真的不知道为什么。
有谁知道,加载变量后如何更新 CListCtrl?
【问题讨论】:
【参考方案1】:在 MFC 文档/视图架构中,当文档更改数据时调用 UpdateAllViews。这会导致在与文档关联的每个视图中调用 OnUpdate。所以把代码放在你的视图 OnUpdate 中。您可以在那里更新所有内容,或使用 lHint 参数更新特定内容。
【讨论】:
以上是关于使用序列化加载变量后更新 CListCtrl的主要内容,如果未能解决你的问题,请参考以下文章