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对象,否则它将成为内存中的垃圾。

  • 相关阅读:
    EUI组件之DataGroup
    EUI组件之CheckBox
    EUI组件之Button
    EUI组件之BitmapLabel 位图字体
    微信小游戏 egret.getDefinitionByName获取不到
    微信小游戏横屏设置
    本地 win7 与虚拟机Centos7 ping互通和Centos7 上网设置
    Centos7没有ETH0网卡
    Parallels Desktop Centos 设置IP
    2.用Python套用Excel模板,一键完成原亮样式
  • 原文地址:https://www.cnblogs.com/afarmer/p/2033646.html
Copyright © 2011-2022 走看看