• 单文档切换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。。。。

  • 相关阅读:
    bootstrap之Click大事
    BZOJ 2878([Noi2012]-失落的游乐园树DP+出站年轮加+后市展望DP+vector的erase)
    cocos2d 消除类游戏简单的算法 (一)
    【BZOJ3627】【JLOI2014】路径规划 分层图
    Windows台cocos2d-x 3.2下载一个新的项目,创造的过程
    无插件,直接加参数,chrome它可以模拟手机浏览器
    unix您不能使用crontab设置运营计划
    LeetCode36:Valid Sudoku
    HDInsight HBase概观
    最受欢迎telnet
  • 原文地址:https://www.cnblogs.com/AZ-ZK/p/4222441.html
Copyright © 2020-2023  润新知