zoukankan      html  css  js  c++  java
  • MFC下OpenGL编程有用的小代码片段

    1、MFC画图测试

    void Codemo21View::draw(void)//画图测试
    {
        HWND hWnd = GetSafeHwnd();
        HDC hDC = ::GetDC(hWnd);
        wglMakeCurrent(hDC,m_hGLContext);

        glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);   
        glLoadIdentity();

        glTranslatef(1.5f,0.0f,-6.0f);
        glBegin(GL_QUADS);    //  绘制正方形
        glColor3f(-1.0f,-1.0f,-1.0f);
        glVertex3f(-1.0f, 1.0f, -100.0f);    // 左上
        glColor3f(0.0f,255.0f,0.0f);
        glVertex3f( 1.0f, 1.0f,-100.0f);    // 右上
        glColor3f(0.0f,0.0f,255.0f);
        glVertex3f( 1.0f,-1.0f, -100.0f);    // 左下
        glColor3f(1.0f,1.0f,-1.0f);
        glVertex3f(-1.0f,-1.0f, -100.0f);    // 右下
        glEnd();     // 正方形绘制结束

        SwapBuffers(hDC);
    }

    2、OpenGL初始化

    BOOL Codemo21View::PreCreateWindow(CREATESTRUCT& cs)

        cs.style |= (WS_CLIPCHILDREN | WS_CLIPSIBLINGS);//openGL必需的
        return CView::PreCreateWindow(cs);
    }

    3、

    // 分析标准外壳命令、DDE、打开文件操作的命令行
    CCommandLineInfo cmdInfo;
    ParseCommandLine(cmdInfo);

    //取消MDI运行时默认新建文件。
    if(cmdInfo.m_strFileName == "")
    cmdInfo.m_nShellCommand = CCommandLineInfo::FileNothing;

    4、

    //对象类型判断
    //oTe是oFireworks的父类,只有一个虚函数
    oFireworks *p_osh = dynamic_cast<oFireworks *>((oTe *)pView->TreeCtrl->GetItemData(pView->TreeCtrl->GetSelectedItem())); 
    if(NULL == p_osh) 

        //pObject不能指向一个oFireworks对象
        AfxMessageBox(_T("no"));

    else

        //pObject被安全的转换成了oFireworks对象
        AfxMessageBox(_T("yes"));
    }

    5、非模式对话框

    if(m_playdialog == null)
    {
        m_playdialog = new oaplaydialog();
        m_playdialog->create(idd_oaplaydialog,this);
        m_playdialog->showwindow(sw_show);
    }
    else
    {
        m_playdialog->showwindow(sw_show);
        m_playdialog->setactivewindow();
    }

    6、

    “\ntt3\ntt5\ntt4 Files (*.tt0)\n.tt0\ntt1.Document\ntt6.Document ”
    “\n文档类型名称\n新文件简称\n筛选器名\n扩展名\n文件类型\n文件类型全称”

    7、

    无论是调用DestroyWindow()还是发送WM_CLOSE消息,窗口关闭后一定要删除CWND对象,否则它将成为内存中的垃圾。

  • 相关阅读:
    hdu 3342 Legal or Not 拓排序
    hdu 1596 find the safest road Dijkstra
    hdu 1874 畅通工程续 Dijkstra
    poj 2676 sudoku dfs
    poj 2251 BFS
    poj Prime Path BFS
    poj 3278 BFS
    poj 2387 Dijkstra 模板
    poj 3083 DFS 和BFS
    poj 1062 昂贵的聘礼 dijkstra
  • 原文地址:https://www.cnblogs.com/afarmer/p/2033646.html
Copyright © 2011-2022 走看看