資源簡介
基于MFC對話框的OpenGL三維顯示(picture control 類版)
代碼片段和文件信息
#include?“stdafx.h“
#include?“MyStatic.h“
#include?
CMyStatic::CMyStatic()
{
}
CMyStatic::~CMyStatic()
{
}
BEGIN_MESSAGE_MAP(CMyStatic?CStatic)
ON_WM_TIMER()
END_MESSAGE_MAP()
void?CMyStatic::OnTimer(UINT_PTR?nIDEvent)
{
//?TODO:?在此添加消息處理程序代碼和/或調用默認值
GLDraw();???//定時器中調用這個函數
CStatic::OnTimer(nIDEvent);
}
void?CMyStatic::PreSubclassWindow()
{
//?TODO:?在此添加專用代碼和/或調用基類
InitGL();
CStatic::PreSubclassWindow();
}
//?OpenGL繪制
void?CMyStatic::GLDraw()
{
glClear(GL_COLOR_BUFFER_BIT?|?GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
glTranslatef(-0.0f?0.0f?-10.0f);
static?int?RotateDegTriangle?=?1;
glRotatef(RotateDegTriangle++?0.0f?1.0f?0.0f);
glBegin(GL_TRIANGLES);
glColor3f(1.0f?0.0f?0.0f);
glVertex3f(0.0f?2.0f?0.0f);
glColor3f(0.0f?1.0f?0.0f);
glVertex3f(-1.0f?0.0f?1.0f);
glColor3f(0.0f?0.0f?1.0f);
glVertex3f(1.0f?0.0f?1.0f);
glColor3f(1.0f?0.0f?0.0f);
glVertex3f(0.0f?2.0f?0.0f);
glColor3f(0.0f?0.0f?1.0f);
glVertex3f(1.0f?0.0f?1.0f);
glColor3f(0.0f?1.0f?0.0f);
glVertex3f(1.0f?0.0f?-1.0f);
glColor3f(1.0f?0.0f?0.0f);
glVertex3f(0.0f?2.0f?0.0f);
glColor3f(0.0f?1.0f?0.0f);
glVertex3f(1.0f?0.0f?-1.0f);
glColor3f(0.0f?0.0f?1.0f);
glVertex3f(-1.0f?0.0f?-1.0f);
glColor3f(1.0f?0.0f?0.0f);
glVertex3f(0.0f?2.0f?0.0f);
glColor3f(0.0f?0.0f?1.0f);
glVertex3f(-1.0f?0.0f?-1.0f);
glColor3f(0.0f?1.0f?0.0f);
glVertex3f(-1.0f?0.0f?1.0f);
glEnd();
#ifdef?TWO_OBJS?
glLoadIdentity();
glTranslatef(5.0f?0.0f?-15.0f);
RotateDegQuad?+=?3.0f;
glRotatef(RotateDegQuad?1.0f?1.0f?0.0f);
glBegin(GL_QUADS);
glColor3f(1.0f?1.0f?0.0f);
glVertex3f(-1.0f?1.0f?0.0f);
glVertex3f(-1.0f?-1.0f?0.0f);
glVertex3f(1.0f?-1.0f?0.0f);
glVertex3f(1.0f?1.0f?0.0f);
glEnd();
#endif?
SwapBuffers(hdc);?//利用雙緩沖
}
//?OpenGl初始化
bool?CMyStatic::InitGL()
{
static?PIXELFORMATDEscriptOR?pfd?=
{
sizeof(PIXELFORMATDEscriptOR)
1
PFD_DRAW_TO_WINDOW?|?PFD_SUPPORT_OPENGL?|?PFD_DOUBLEBUFFER
PFD_TYPE_RGBA
24?
0?0?0?0?0?0
0
0
0
0?0?0?0
32?
0
0
PFD_MAIN_PLANE
0
0?0?0
};
int?pixelformat;
hdc?=?::GetDC(this->GetSafeHwnd());
if?(!(pixelformat?=?ChoosePixelFormat(hdc?&pfd)))
{
MessageBox(“ChoosePixelFormat?failed!“);
return?false;
}
if?(!SetPixelFormat(hdc?pixelformat?&pfd))
{
MessageBox(“SetPixelFormat?failed!“);
return?false;
}
if?(!(hglrc?=?wglCreateContext(hdc)))
{
MessageBox(“CreateContext?failed!“);
return?false;
}
if?(!wglMakeCurrent(hdc?hglrc))
{
MessageBox(“MakeCurrent?failed!“);
return?false;
}
CRect?rect;?//在這個矩形中畫圖
GetClientRect(rect);
glViewport(0?0?rect.Width()?rect.Height());
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
/*gluPerspective(45.0f??rect.Width()/rect.Height()??0.1f??100.0f);//?計算窗口的外觀比例*/
gluPersp
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
????..A..H.?????23040??2017-01-05?16:14??[初級]PictureControl\.vs\OControl\v14\.suo
?????文件?????213504??2017-01-05?16:09??[初級]PictureControl\Debug\OControl.exe
?????文件????1403800??2017-01-05?16:09??[初級]PictureControl\Debug\OControl.ilk
?????文件????2846720??2017-01-05?16:09??[初級]PictureControl\Debug\OControl.pdb
?????文件??????34815??2017-01-05?16:09??[初級]PictureControl\OControl\Debug\MyStatic.obj
?????文件????????308??2017-01-05?16:09??[初級]PictureControl\OControl\Debug\OControl.log
?????文件??????69553??2017-01-05?16:08??[初級]PictureControl\OControl\Debug\OControl.obj
?????文件???55312384??2017-01-05?15:58??[初級]PictureControl\OControl\Debug\OControl.pch
?????文件??????69260??2017-01-05?15:58??[初級]PictureControl\OControl\Debug\OControl.res
?????文件???????2742??2017-01-05?16:09??[初級]PictureControl\OControl\Debug\OControl.tlog\CL.command.1.tlog
?????文件??????82812??2017-01-05?16:09??[初級]PictureControl\OControl\Debug\OControl.tlog\CL.read.1.tlog
?????文件???????2832??2017-01-05?16:09??[初級]PictureControl\OControl\Debug\OControl.tlog\CL.write.1.tlog
?????文件???????1666??2017-01-05?16:09??[初級]PictureControl\OControl\Debug\OControl.tlog\li
?????文件???????6396??2017-01-05?16:09??[初級]PictureControl\OControl\Debug\OControl.tlog\li
?????文件????????824??2017-01-05?16:09??[初級]PictureControl\OControl\Debug\OControl.tlog\li
?????文件????????192??2017-01-05?16:09??[初級]PictureControl\OControl\Debug\OControl.tlog\OControl.lastbuildstate
?????文件????????346??2017-01-05?15:58??[初級]PictureControl\OControl\Debug\OControl.tlog\rc.command.1.tlog
?????文件???????2950??2017-01-05?15:58??[初級]PictureControl\OControl\Debug\OControl.tlog\rc.read.1.tlog
?????文件????????210??2017-01-05?15:58??[初級]PictureControl\OControl\Debug\OControl.tlog\rc.write.1.tlog
?????文件??????30701??2017-01-05?16:08??[初級]PictureControl\OControl\Debug\OControlDlg.obj
?????文件?????929616??2017-01-05?15:58??[初級]PictureControl\OControl\Debug\stdafx.obj
?????文件????2386944??2017-01-05?16:09??[初級]PictureControl\OControl\Debug\vc140.idb
?????文件????6754304??2017-01-05?16:09??[初級]PictureControl\OControl\Debug\vc140.pdb
?????文件???????3322??2017-01-05?16:11??[初級]PictureControl\OControl\MyStatic.cpp
?????文件????????317??2017-01-05?15:58??[初級]PictureControl\OControl\MyStatic.h
?????文件?????107672??2017-01-05?15:58??[初級]PictureControl\OControl\OControl.aps
?????文件???????2396??2017-01-05?15:44??[初級]PictureControl\OControl\OControl.cpp
?????文件????????455??2017-01-05?15:44??[初級]PictureControl\OControl\OControl.h
?????文件???????9490??2017-01-05?15:58??[初級]PictureControl\OControl\OControl.rc
?????文件??????10679??2017-01-05?15:58??[初級]PictureControl\OControl\OControl.vcxproj
............此處省略24個文件信息
評論
共有 條評論