关于OpenGL在MFC单文档下绘制图形,自己在网上找了很久但是对找到的东西一直感觉不满意,最后在《OpenGL高级编程与可视化系统开发》一书中找到了相对比较满意的答案,但这段代码在网上暂时还没找到,所以就发到我的博客。

本篇博文主要讲的是基本框架在下篇博文将给出具体函数代码: http://www.5dkx.com/arch/164.html

理论依据:
1)在单文档窗口的创建过程中,设置好显示的像素格式,并按OpenGL的要求设置好窗口的属性和风格。
2)首先获得windows设备的描述表,然后将其与事先设置好的OpenGL绘制描述表连起来。
3)调用OpenGL命令进行图形绘制
4)退出OpenGL图形窗口时,释放OpenGL绘制的描述表RC和Windows设备描述表DC。
具体在MFC单文档的编程步骤:
eg.创建项目为5dkx.com
1)为4dkx.comview类添加消息WM_CREATE、WM_DESTROY、WM_SIZE和WM_TIMER响应函数。
2)在5dkx.comview.h中加入一下源代码
////////////////////////////////////////////////////
//添加成员函数与成员变量
BOOL RenderScene();
BOOL SetupPixelFormat(void);
void SetLogicalPalette(void);
BOOL InitializeOpenGL(CDC* pDC);
HGLRC m_hRC;//OpenGL绘制描述表
HPALETTE m_hPalette;//OpenGL调色板
CDC* m_pDC;//OpenGL设备描述表
3)需要在5dkc.comview.cpp文件中修改和添加以下函数
5dkx.comVeiw::preCreateWindow()
5dkx.comVeiw::OnDraw()
5dkx.comVeiw::OnCreate()
5dkx.comVeiw::OnDestroy
5dkx.comVeiw::OnSize()
5dkx.comVeiw::OnTimer(UINT nIDEvent)
需要添加的函数
void 5dkx.comVeiw::SetLogiclPalette(void)
BOOL 5dkx.comVeiw::InitializeOpenGL(CDC*pDC)
BOOL 5dkx.comVeiw::SetupPixelFormat()
BOOL 5dkx.comVeiw::RenderScene()

首发:http://www.5dkx.com/arch/163.html

非特别说明均为原创文章如转载,请注明:转载自 5D开心博客 [ http://www.5DKX.com/ ]

posted on 2010-04-11 23:19  5D开心博客  阅读(1735)  评论(0编辑  收藏  举报