Обновить CListCtrl после загрузки переменной с сериализацией

Итак, я сохранил переменную с Serialize в MFC.

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. Проблема в том, что я не могу вызвать функцию в моей функции Serialize с помощью pView->InsertAfterOpen();. Всякий раз, когда я это делаю, переменная не имеет значения. Я действительно не знаю, почему. Кто-нибудь знает, как обновить CListCtrl после загрузки переменной?


person user2675121    schedule 19.11.2013    source источник


Ответы (1)


В архитектуре документа/представления MFC вы вызываете UpdateAllViews, когда документ изменил данные. Это вызывает вызов OnUpdate в каждом представлении, связанном с документом. Поэтому поместите код в свое представление OnUpdate. Вы можете обновить все там или использовать параметр lHint, чтобы обновить конкретную вещь.

person ScottMcP-MVP    schedule 19.11.2013