MFC如何通知文档被更改(并显示*)

MFC How to notify the document is changed (and display the *)

本文关键字:显示 文档 通知 MFC 何通知      更新时间:2023-10-16

我习惯了,当我在Microsoft Word中更改文档时,它会在文件名附近获得*,应用程序会自动知道我应该保存文档。

我如何在MFC中复制这种行为并通知我的文档类这些更改,以便应用程序自动知道文档需要保存?

通知文档被修改,使用CDocument::SetModified方法,查询文档是否被修改,使用CDocument::IsModified方法。对于视图,在更新文档时调用CView::OnUpdate

有点晚了,但我不得不做同样的事情。

设置文档的修改标志后,更改标题。这里有一个例子:m_pDoc -> SetModifiedFlag (bChanged);

        CString stTitle = m_pDoc->GetTitle();
        if (stTitle.Left(2) == _T(" *"))) {
            stTitle = stTitle.Left(stTitle.GetLength() - 2);
        }
        if (bChanged) {
            stTitle += _T(" *");
            m_pDoc->SetTitle(stTitle);
        }
        else {
            m_pDoc->SetTitle(stTitle);
        }