zoukankan      html  css  js  c++  java
  • 单文档切换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。。。。

  • 相关阅读:
    objective-C 自定义对象归档的实现
    D3D游戏编程系列(一):DXLib的介绍
    再谈 retain,copy,mutableCopy(官方SDK,声明NSString都用copy非retain)
    uva 11292 Dragon of Loowater (勇者斗恶龙)
    【iOS开发】iOS7 兼容及部分细节
    QMenu的个性化定制
    基于Token的WEB后台认证机制
    Lua简易入门教程
    char,short ,int ,long,long long,unsigned long long数据范围
    用Kibana和logstash快速搭建实时日志查询、收集与分析系统
  • 原文地址:https://www.cnblogs.com/AZ-ZK/p/4222441.html
Copyright © 2011-2022 走看看