mfc+opengl_编程入门

mfc+opengl_编程入门

ID:33871363

大小:150.71 KB

页数:18页

时间:2019-02-28

mfc+opengl_编程入门_第1页
mfc+opengl_编程入门_第2页
mfc+opengl_编程入门_第3页
mfc+opengl_编程入门_第4页
mfc+opengl_编程入门_第5页
资源描述:

《mfc+opengl_编程入门》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、科研导航http://www.kydh.netMFC+OpenGL编程入门OpenGL作图非常方便,故日益流行,但对许多人来说,是在微机上进行的,首先碰到的问题是,如何适应微机环境。这往往是最关键的一步,虽然也是最初级的。下面介绍如何在VC++上进行OpenGL编程。其实相当简单明快,只因国内缺少这方面的资料与例子,致使许多小细节要一个一个地试,耗去大量时间。希望各位有什么心得体会,也公布出来,从而节省每个人都要试试的时间。言归正传,下面以画一条Bezier曲线为例,详细介绍VC++上OpenGL

2、编程的方法。这里实际上也给出了个C++良好封装性编程的范例。文中给出了详细注释,以便给初学者明确的指引。一步一步地按所述去做,你将顺利地画出第一个OpenGL平台上的图形来。(本文例子以VC++5.0为背景)一、产生程序框架Test.dswNewProject

3、MFCApplicationWizard(EXE)

4、"Test"

5、OK*注*:加“”者指要手工敲入的字串二、导入Bezier曲线类的文件。用下面方法产生BezierCurve.hBezierCurve.cpp两个文件:科研导航http://

6、www.kydh.netWorkSpace

7、ClassView

8、TestClasses

9、<右击弹出>NewClass

10、GenericClass(不用MFC类)

11、"CBezierCurve"

12、OK三、编辑好Bezier曲线类的定义与实现。写好下面两个文件:BezierCurve.hBezierCurve.cpp四、设置编译环境:1.在BezierCurve.h和TestView.h内各加上:#include#include#include

13、2.在集成环境中,Project

14、Settings

15、Link

16、Object/librarymodule

17、"opengl32.libglu32.libglaux.lib"

18、OK五、设置OpenGL工作环境:(下面各个操作,均针对TestView.cpp)1.处理PreCreateWindow():设置OpenGL绘图窗口的风格科研导航http://www.kydh.netcs.style

19、=WS_CLIPSIBLINGS

20、WS_CLIPCHILDREN

21、CS_OWNDC;2.处理OnCreate()

22、:创建OpenGL的绘图设备。OpenGL绘图的机制是:先用OpenGL的绘图上下文RenderingContext(简称为RC)把图画好,再把所绘结果通过SwapBuffer()函数传给Window的绘图上下文DeviceContext(简记为DC).要注意的是,程序运行过程中,可以有多个DC,但只能有一个RC。因此当一个DC画完图后,要立即释放RC,以便其它的DC也使用。在后面的代码中,将有详细注释。intCTestView::OnCreate(LPCREATESTRUCTlpCreateSt

23、ruct){if(CView::OnCreate(lpCreateStruct)==-1)return-1;Init();return0;}voidCTestView::Init(){m_pDC=newCClientDC(this);//创建DC科研导航http://www.kydh.netASSERT(m_pDC!=NULL);if(!bSetupPixelFormat())//设定绘图的位图格式,函数下面列出return;m_hRC=wglCreateContext(m_pDC->m_hDC)

24、;//创建RCwglMakeCurrent(m_pDC->m_hDC,m_hRC);//RC与当前DC相关联}//CClient*m_pDC;HGLRCm_hRC;是CTestView的成员变量BOOLCTestView::bSetupPixelFormat(){staticPIXELFORMATDESCRIPTORpfd={sizeof(PIXELFORMATDESCRIPTOR),//sizeofthispfd1,//versionnumberPFD_DRAW_TO_WINDOW

25、//supp

26、ortwindowPFD_SUPPORT_OPENGL

27、//supportOpenGLPFD_DOUBLEBUFFER,//doublebufferedPFD_TYPE_RGBA,//RGBAtype24,//24-bitcolordepth0,0,0,0,0,0,//colorbitsignored科研导航http://www.kydh.net0,//noalphabuffer0,//shiftbitignored0,//noaccumulationbuffer0,0,0,0,/

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。