我有一个类似文本编辑器的MFC程序:http://www.dogdaysrpg.com/screen.png
我想要的是将当前工作选项卡的文件名作为字符串。例如,在上图中,字符串将是“Emergence1”。
如何获取活动标签上使用的文件名?
答案 0 :(得分:2)
获取特定视图的标题非常简单:GetParentFrame()->GetTitle()
。
如果您不知道当前选择了哪个视图,那么找到它实际上有点棘手。激活或停用视图时会调用OnActivateView
。您需要添加一个重载以跟踪最近激活的那个。然后,为了找到它,您将枚举您的观点(使用您的文档的GetFirstViewPosition
,GetNextView
)来查找有效的观点。
答案 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();