您的位置:首页 > 运维架构

在MFC中的picture control 中使用opengl作图

2015-11-06 20:34 253 查看
转载自:http://blog.sina.com.cn/s/blog_8e6bfecf0100uuwy.html,觉得这个写的详细一些,自己测试也成功,在此基础上做了点修改,收藏记录分享下。。。

新建一个MFC的dialog工程(eg,C++MFC工程openGlMFC)。

为了方便进行字符串CString与其它格式的转换,在工程属性的Configuration Properties -> General -> Character Set中,不使用默认的Use Unicode Character Set,改为Use Multi-Byte Character Set。

在项目属性的linker->input->additional dependencies中加入:opengl32.lib;glu32.lib;glut32.lib;glaux.lib

在MFC组件中添加一个Picture Control组件,将组件ID改为IDC_RENDER

在stdafx.h的末尾加入:("#include< afxcontrolbars.h>"之后加入)

    #include< GL/glut.h>

    #include< GL/glaux.h>    

在??Dlg.h的 "enum { IDD = IDD_??_DIALOG };" 下加入:

    BOOL SetWindowPixelFormat(HDC hDC);                    // 设定像素格式

    BOOL CreateViewGLContext(HDC hDC);                    // view GL Context

    void RenderScene();                                              
     // 绘制场景

    HDC hrenderDC;                                                  
         // DC

    HGLRC hrenderRC;                                              
         // RC

    int PixelFormat;                                              
         // 像素格式

在??Dlg.h的"DECLARE_MESSAGE_MAP()"下加入:

    afx_msg void OnTimer(UINT nIDEvent);                // 重载OnTimer函数

在??Dlg.cpp的"BEGIN_MESSAGE_MAP(CCOpenGLDlg, CDialog)...END_MESSAGE_MAP()"中加入:(注意不要加错了地方

    ON_WM_TIMER()

在??Dlg.cpp的OnInitDialog()中加入OpenGL的初始化声明etc:

    CWnd* wnd = GetDlgItem(IDC_RENDER);          
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  opengl mfc