在MFC下使用OpenGL的乙個簡單的例子

2021-04-14 00:28:00 字數 1535 閱讀 8479

最近開始準備做opengl方面的東西,萬事開頭難,真是體會頗深,簡直就是寸步難行。有時候發各帖子到網上,不停地重新整理,希望能有高手指點,可是,每次收穫並不是太大。也許,每個程式設計師都有乙個痛苦的過程,我當然不能例外了。不過,痛苦之後有收穫才是最大的快樂。

正因為這個原因,當我度過了自己的第一難關時,心裡**了;不過,想到自己的痛苦經歷,真是往事不堪回首;想必還會有人不斷地開始學習opengl吧,希望我寫出來的東西,能減輕他們的痛苦經歷。

在mfc下編opengl的程式,首先要設定環境:

首先在xxview.h下,加入標頭檔案

#include"gl/gl.h"

#include"gl/glu.h"

#include"gl/glaux.h"

然後再把下面的檔案加入到自己的工程中。

vc所在的盤:/program files/microsoft visual studio/vc98/lib/opengl32.lib

vc所在的盤:/program files/microsoft visual studio/vc98/lib/glu32.lib.lib

vc所在的盤:/program files/microsoft visual studio/vc98/lib/glaux.lib.lib

可能有些你目前用不到,不過沒有關係,以後再用就不用改了。

下面是主要的四部分:

4-1:

void cmysunview::oninitialupdate()

; int m_pixelformat;

m_pixelformat = ::choosepixelformat(m_hdc, &pfd);

::setpixelformat(m_hdc, m_pixelformat, &pfd);

// m_hrc = ::wglcreatecontext( m_hdc );

wglmakecurrent( m_hdc, m_hrc );

} 4-2:

void cmysunview::ondraw(cdc* pdc)

4-3

void cmysunview::onsize(uint ntype, int cx, int cy)

4-4

bool cmysunview::onerasebkgnd(cdc* pdc)

void cmysunview::ondestroy()

cmysunview::cmysunview()

class cmysunview : public cview

上面是主要的步驟,當然,其他個性化的東西都可以新增上去,這是最小化的最基本的東西,可能也會有不妥地地方,不過已經能看到東西了。

我想程式這麼簡單就不要做太多的解釋了,有興趣的話,繼續**。

本文**

解決OpenGL在MFC下的閃爍問題

boolcopenglview onerasebkgnd cdc pdc 我們知道,在視窗中拖動乙個圖形的時候,由於邊畫邊顯示,會出現閃爍的現象。在gdi中解決這個問題較為複雜,通過在記憶體中生成乙個記憶體dc,繪畫時讓畫筆在記憶體dc中畫,畫完後一次用bitblt將記憶體dc 貼 到顯示器上,就可...

OpenGL在MFC中的實現

1 在寫 之前,首先要做好opengl的環境配置。比如路徑之類,還有新增標頭檔案,標頭檔案新增在stdafx.h中,有位置要求,不能在 include 這句之上 這兩句加在 stdafx.h 裡面的 include 以上就會出現問題,需要加在這一句下面 include include 2 修改函式b...

在MFC中使用OpenGL相關配置的整理總結

本文參考了 megabyte 的opengl教程 hglrc m hglcontext opengl的rc控制代碼 bool bglewinitialized 初始化glew的判斷標誌 bool initglew hdc 首先初始化glew bool createviewglcontext hdc ...