在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);
新建一个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);
相关文章推荐
- 解决Vista系统OpenGL驱动问题的方法整理
- Delphi下OpenGL2d绘图之画四边形的方法
- Delphi下OpenGL2d绘图之画点的方法
- Delphi下OpenGL2d绘图之初始化流程详解
- Visual C++中MFC消息的分类
- MFC中Radio Button的用法详解
- MFC对话框中添加状态栏的方法
- MFC创建右键弹出菜单的方法
- MFC中动态创建控件以及事件响应实现方法
- C++ 关于MFC多线程编程的注意事项
- MFC程序对文件的处理方法
- MFC自定义消息的实现方法
- MFC实现在文件尾追加数据的方法
- MFC之ComboBox控件用法实例教程
- MFC绘制不规则窗体的方法
- Delphi使用OpenGL2d绘图之画图片Bmp的方法
- IE8引发 VS2005/2008 MFC向导出错的解决方案
- 通过OpenGL ES混合模式缩放视频缓冲区来适应显示尺寸
- VC运用OPENGL加载BMP纹理图的实现方法汇总
- MFC实现全屏功能代码实例