怎样让MDI添加一个新的层叠的视图?

zengting 广西凯迅科技发展有限公司 开发总监  2008-03-22 11:30:58

MFC的MDI向导程序的new file 菜单可以生成另外一个的视图,这个视图是叠在原来的视图上面,怎样用代码来实现这个功能呢?

我下面的代码是可以实现生成一个新的视图,但它不是叠在上面,而是替换了之前的视图,我要的是层叠在上面而不是替换

CView* pActiveView = ((CMainFrame*)m_pMainWnd)->MDIGetActive()->GetActiveView();

m_pFirstView = pActiveView;

m_pOtherView = (CImageView1*) new CImageView1;


CDocument* pDoc = ((CMainFrame*)m_pMainWnd)->MDIGetActive()->GetActiveDocument();

//通过CCreateContext实现第二视图和文档的关联

CCreateContext context;

context.m_pCurrentDoc = pDoc;



UINT m_ID = AFX_IDW_PANE_FIRST + 1;



m_pOtherView->Create(NULL, NULL, WS_CHILD, CFrameWnd::rectDefault, m_pMainWnd, m_ID, &context);
//////////////////////////////////////////////////////////////////
m_pFirstView->ShowWindow(SW_HIDE);
m_pOtherView->ShowWindow(SW_SHOW);



((CMainFrame*)m_pMainWnd)->SetActiveView(m_pOtherView);

((CMainFrame*) m_pMainWnd)->RecalcLayout();

m_pOtherView->Invalidate();
怎样改上面的代码才可以达到层叠的效果呢?

...全文
75 点赞 收藏 6
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
long_xing 2008-03-23
一个多文档框架下面可以包含多个文档,但一个文档只对应一个视图,所以你应该创建的是一个文档(Document),而不是一个视视图(View)。
回复
cnzdgs 2008-03-23
创建另外的视图比较麻烦,你需要先定义好一套文档、子框架、视图类,然后
	CMultiDocTemplate* pDocTemplate;
pDocTemplate = new CMultiDocTemplate(IDR_MdiTYPE,
RUNTIME_CLASS(CYourDoc2),
RUNTIME_CLASS(CYourChildFrame2),
RUNTIME_CLASS(CYourView2));
if (!pDocTemplate) return;
theApp.AddDocTemplate(pDocTemplate);
pDocTemplate->OpenDocumentFile(NULL);

如要简单一些可以用非模式对话框。
回复
zengting 2008-03-22
不行呀,我要建立自己另外的一个类的视图,用 主框架发消息达不到我的要求
回复
cnzdgs 2008-03-22
如果你只是要实现与File-New相同的操作,直接向主框架发消息WM_COMMAND、ID_FILE_NEW、0,或者直接调应用程序类的OnFileNew函数就可以了。
回复
zengting 2008-03-22
楼上的大哥,星星好红好多呀,请问怎样 建立一个文档子框架
回复
菜牛 2008-03-22
那你应该新建一个文档子框架而不是单单一个视图。
回复
相关推荐
发帖
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
帖子事件
创建了帖子
2008-03-22 11:30
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……