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。。。。

  • 相关阅读:
    form表单 获取与赋值
    转:探讨JS合并两个数组的方法
    Extjs动态增删组件
    Extjs中创建Tree菜单【一】
    Extjs中grid前端分页使用PagingMemoryProxy【二】
    python模拟线性回归的点
    TensorFlow 辨异 —— tf.add(a, b) 与 a+b(tf.assign 与 =)、tf.nn.bias_add 与 tf.add(转)
    python使用cv2显示图片像素值
    tensorflow中run和eval的区别(转)
    获取tensorflow中tensor的值
  • 原文地址:https://www.cnblogs.com/AZ-ZK/p/4222441.html
Copyright © 2011-2022 走看看