2015-05-26 2 views
1

Я привык к тому, что когда я меняю документ, например, в Microsoft Word, он получает * рядом с именем файла, и приложение автоматически знает, что я должен сохранить документ ,MFC Как уведомить документ об изменении (и отображать *)

Как я могу воспроизвести это поведение в MFC и уведомлять об этом свой класс Document, чтобы приложение автоматически узнало о необходимости сохранения документа?

ответ

5

Чтобы уведомить документ о его изменении, вы должны использовать метод CDocument::SetModified и запросить, будет ли он изменен, вы можете использовать CDocument::IsModified. Для представления вызывается CView::OnUpdate, когда документ обновляется.

+0

Однако из моего исследования не просто показать звездочку, уведомляющую, что документ был изменен. Я прав? – manatttta

2

Немного поздно, но мне просто нужно было сделать то же самое.

После того, как вы установили флаг изменения документа, измените заголовок. Вот пример: 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); 
     }