如何在标签视图中获取活动标签的文件名?

时间:2014-02-08 22:36:44

标签: c++ mfc

我有一个类似文本编辑器的MFC程序:http://www.dogdaysrpg.com/screen.png

我想要的是将当前工作选项卡的文件名作为字符串。例如,在上图中,字符串将是“Emergence1”。

如何获取活动标签上使用的文件名?

2 个答案:

答案 0 :(得分:2)

获取特定视图的标题非常简单:GetParentFrame()->GetTitle()

如果您不知道当前选择了哪个视图,那么找到它实际上有点棘手。激活或停用视图时会调用OnActivateView。您需要添加一个重载以跟踪最近激活的那个。然后,为了找到它,您将枚举您的观点(使用您的文档的GetFirstViewPositionGetNextView)来查找有效的观点。

答案 1 :(得分:1)

这就是我解决问题的方法。

我需要获取当前活动文档的标题。

要检索当前活动文档,请使用以下代码:

CDocument * CEmergenceView::GetDoc()
{
      CMDIChildWnd * pChild =
          ((CMDIFrameWnd*)(AfxGetApp()->m_pMainWnd))->MDIGetActive();

      if ( !pChild )
          return NULL;

      CDocument * pDoc = pChild->GetActiveDocument();

      if ( !pDoc )
         return NULL;

      // Fail if doc is of wrong kind
      if ( ! pDoc->IsKindOf( RUNTIME_CLASS(CDocument) ) )
         return NULL;

      return (CDocument *) pDoc;
}

然后当您检索文档时,请调用GetTtile,即:

CDocument * currentDoc = GetDoc();
CString title = currentDoc->GetTitle();