以下新建文档的代码是在点击菜单的一个按钮时相应的。
m_pDocTemplate= new CMultiDocTemplate{
IDR_MYMENU,
RUNTIME_CLASS(MYDOC),
RUNTIME_CLASS(MYFRM),
RUNTIME_CLASS(MYVIEW),)
CMDIChildWnd *pActiveChild=(CMDIChildWnd*)GetParent();
CDocument *pDoc;
CFrameWnd *m_pFrameWnd;
pDoc=pActiveChild->GetActiveDocument();
m_pFrameWnd=m_pDocTemplate->CreatNewFramee(pDoc,pActiveChild);
m_pDocTemplate->InitialUpdateFrame(m_pFrameWnd,pDoc);
//修改标题栏题目
m_pFrameWnd->SetWindowsText("MySys");//
1 .为什么首次显示该试图的时候显示的
是MySys,而在选择其他的文档视图的时候,就有变成了系统默认的标题
2.重复相应这段代码时,都会产生一个文档视图,怎样控制它,只产生一次。
我在该代码的前面加上了if(m_pDocTemplate==NULL){return}还是有点问题?
m_pDocTemplate= new CMultiDocTemplate{
IDR_MYMENU,
RUNTIME_CLASS(MYDOC),
RUNTIME_CLASS(MYFRM),
RUNTIME_CLASS(MYVIEW),)
CMDIChildWnd *pActiveChild=(CMDIChildWnd*)GetParent();
CDocument *pDoc;
CFrameWnd *m_pFrameWnd;
pDoc=pActiveChild->GetActiveDocument();
m_pFrameWnd=m_pDocTemplate->CreatNewFramee(pDoc,pActiveChild);
m_pDocTemplate->InitialUpdateFrame(m_pFrameWnd,pDoc);
//修改标题栏题目
m_pFrameWnd->SetWindowsText("MySys");//
1 .为什么首次显示该试图的时候显示的
是MySys,而在选择其他的文档视图的时候,就有变成了系统默认的标题
2.重复相应这段代码时,都会产生一个文档视图,怎样控制它,只产生一次。
我在该代码的前面加上了if(m_pDocTemplate==NULL){return}还是有点问题?
文档模板由于在视图产生而且没有添加到App中文档模板列表中,你这里的m_pFrameWnd只是子框架.所以对应修改的也是子框架的标题.当视图切换时,子框架的标题是与文档关联的,不同视图对应不同标题.
2.如果要产生一次,查询当前视图是否是你要打开的视图.然后觉得是否新建或不作为;
查询方法:if(AfxGetMainWnd()->GetActiveView()->IsKindOf(RUNTIME_CLASS(CMyView)))
return;
else
//创建
;