如何在选项卡视图中获取活动选项卡的文件名

How to get filename of of active tab in a Tab View?

本文关键字:选项 活动 文件名 获取 视图      更新时间:2023-10-16

我有一个MFC程序,有点像文本编辑器:http://www.dogdaysrpg.com/screen.png

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

如何获取活动选项卡上使用的文件名?

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

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

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

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

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

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();