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

  • 相关阅读:
    windows下python访问ipv6报错
    windows下python的包管理器pip安装
    python添加windows域验证
    Java系列笔记(1)
    JVM调优总结 -Xms -Xmx -Xmn -Xss
    5种调优Java NIO和NIO.2的方式
    Java之美[从菜鸟到高手演变]之JVM内存管理及垃圾回收
    jmap,jhat分析内存
    JVM 垃圾回收算法
    JVM 类加载过程
  • 原文地址:https://www.cnblogs.com/afarmer/p/2033646.html
Copyright © 2020-2023  润新知