首页 > 代码库 > 单文档切换OpenGL视图
单文档切换OpenGL视图
1.新建一个是继承CView的新类CViewSecond
2.menu中建两个菜单,在mainframe中添加对应的消息响应OnDataView,On3dView
mainframe中添加成员变量m_curView;下面代码中ShowWindow(SW_SHOWMAXIMIZED),参数一定是最大化的参数啊,千万别写SW_SHOW,debug好大会儿,发现参数为SW_SHOW的时候视图rect为0啊,0啊。。。。只有移动窗口的时候才显示opengl,发现,ondraw函数死活不被调用,然后消息响应onpaint添加ondraw也不行。。。 最后试试试试 。。。参数的问题。。。。。残念啊。。。
1 void CMainFrame::On3dView() 2 { 3 // TODO: 在此添加命令处理程序代码 4 if (m_curView == ID_3D_VIEW) 5 { 6 return; 7 } 8 CView* pOldActiveView = GetActiveView(); 9 CRuntimeClass* pNewViewClass;10 pNewViewClass = RUNTIME_CLASS(CViewSecond);11 CCreateContext context;12 context.m_pNewViewClass = pNewViewClass;13 context.m_pCurrentDoc = GetActiveDocument();14 CView* pNewView = STATIC_DOWNCAST(CView, CreateView(&context));15 if (pNewView != NULL)16 {17 pNewView->ShowWindow(SW_SHOWMAXIMIZED);18 pNewView->OnInitialUpdate();19 SetActiveView(pNewView);20 RecalcLayout(TRUE);21 m_curView = ID_3D_VIEW;22 pOldActiveView->DestroyWindow();23 }24 25 26 }27 28 void CMainFrame::OnDataView()29 {30 // TODO: 在此添加命令处理程序代码31 if (m_curView == ID_DATA_VIEW)32 {33 return;34 }35 CView* pOldActiveView = GetActiveView(); 36 CRuntimeClass* pNewViewClass;37 pNewViewClass = RUNTIME_CLASS(CDocView);38 CCreateContext context;39 context.m_pNewViewClass = pNewViewClass;40 context.m_pCurrentDoc = GetActiveDocument();41 CView* pNewView = STATIC_DOWNCAST(CView, CreateView(&context));42 if (pNewView != NULL)43 {44 pNewView->ShowWindow(SW_SHOWMAXIMIZED);45 pNewView->OnInitialUpdate();46 SetActiveView(pNewView);47 RecalcLayout();48 m_curView = ID_DATA_VIEW;49 pOldActiveView->DestroyWindow();50 }51 52 }
3.CViewSecond中添加相应的初始化OpenGL的各种东西,OK。。。。
单文档切换OpenGL视图
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。