2014-02-08 84 views
0

我有一個有點像文本編輯器的MFC程序:http://www.dogdaysrpg.com/screen.png如何獲取標籤視圖中活動標籤的文件名?

我想要的是獲取當前工作選項卡的文件名作爲字符串。例如,在上圖中,字符串將是「Emergence1」。

如何獲取活動選項卡上使用的文件名?

+0

你爲什麼不記得文件的名稱?你一定知道它曾經設置標籤標題? –

+0

對不起....很多基礎架構是由MFC嚮導創建的。所以我不知道那部分是如何設置的。 – user3126297

+0

如果你不知道,我們有什麼機會?我建議你應該知道你的程序。 –

回答

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

獲取特定視圖的標題非常簡單:GetParentFrame()->GetTitle()

如果您不知道當前選擇哪個視圖,則發現實際上有點棘手。有一個OnActivateView,當視圖被激活或取消激活時會被調用。您需要添加一個超載來跟蹤哪一個最近被激活。然後找到它,您將列舉您的意見(與您的文檔的GetFirstViewPosition,GetNextView)找到一個活動。