資源簡介
1. 基于MFC繪制三維立體小球(太陽、地球、月亮)基本圖形;
2. 基于MFC使用OpenGL 繪制立方體、茶壺、環面等稍復雜的圖形;
3. 基于MFC使用OpenGL用鼠標控制三維物體;
代碼片段和文件信息
#include?“stdafx.h“
#include?“MainFrm.h“
#include?“ClassView.h“
#include?“Resource.h“
#include?“MyOpenGL_MFC1.h“
class?CClassViewMenuButton?:?public?CMFCToolBarMenuButton
{
friend?class?CClassView;
DECLARE_SERIAL(CClassViewMenuButton)
public:
CClassViewMenuButton(HMENU?hMenu?=?NULL)?:?CMFCToolBarMenuButton((UINT)-1?hMenu?-1)
{
}
virtual?void?OnDraw(CDC*?pDC?const?CRect&?rect?CMFCToolBarImages*?pImages?BOOL?bHorz?=?TRUE
BOOL?bCustomizeMode?=?FALSE?BOOL?bHighlight?=?FALSE?BOOL?bDrawBorder?=?TRUE?BOOL?bGrayDisabledButtons?=?TRUE)
{
pImages?=?CMFCToolBar::GetImages();
CAfxDrawState?ds;
pImages->PrepareDrawImage(ds);
CMFCToolBarMenuButton::OnDraw(pDC?rect?pImages?bHorz?bCustomizeMode?bHighlight?bDrawBorder?bGrayDisabledButtons);
pImages->EndDrawImage(ds);
}
};
IMPLEMENT_SERIAL(CClassViewMenuButton?CMFCToolBarMenuButton?1)
//////////////////////////////////////////////////////////////////////
//?構造/析構
//////////////////////////////////////////////////////////////////////
CClassView::CClassView()
{
m_nCurrSort?=?ID_SORTING_GROUPBYTYPE;
}
CClassView::~CClassView()
{
}
BEGIN_MESSAGE_MAP(CClassView?CDockablePane)
ON_WM_CREATE()
ON_WM_SIZE()
ON_WM_CONTEXTMENU()
ON_COMMAND(ID_CLASS_ADD_MEMBER_FUNCTION?OnClassAddMemberFunction)
ON_COMMAND(ID_CLASS_ADD_MEMBER_VARIABLE?OnClassAddMemberVariable)
ON_COMMAND(ID_CLASS_DEFINITION?OnClassDefinition)
ON_COMMAND(ID_CLASS_PROPERTIES?OnClassProperties)
ON_COMMAND(ID_NEW_FOLDER?OnNewFolder)
ON_WM_PAINT()
ON_WM_SETFOCUS()
ON_COMMAND_RANGE(ID_SORTING_GROUPBYTYPE?ID_SORTING_SORTBYACCESS?OnSort)
ON_UPDATE_COMMAND_UI_RANGE(ID_SORTING_GROUPBYTYPE?ID_SORTING_SORTBYACCESS?OnUpdateSort)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
//?CClassView?消息處理程序
int?CClassView::OnCreate(LPCREATESTRUCT?lpCreateStruct)
{
if?(CDockablePane::OnCreate(lpCreateStruct)?==?-1)
return?-1;
CRect?rectDummy;
rectDummy.SetRectEmpty();
//?創建視圖:
const?DWORD?dwViewstyle?=?WS_CHILD?|?WS_VISIBLE?|?TVS_HASLINES?|?TVS_LINESATROOT?|?TVS_HASBUTTONS?|?WS_CLIPSIBLINGS?|?WS_CLIPCHILDREN;
if?(!m_wndClassView.Create(dwViewstyle?rectDummy?this?2))
{
TRACE0(“未能創建類視圖\n“);
return?-1;??????//?未能創建
}
//?加載圖像:
m_wndToolBar.Create(this?AFX_DEFAULT_TOOLBAR_style?IDR_SORT);
m_wndToolBar.LoadToolBar(IDR_SORT?0?0?TRUE?/*?已鎖定*/);
onchangeVisualstyle();
m_wndToolBar.SetPanestyle(m_wndToolBar.GetPanestyle()?|?CBRS_TOOLTIPS?|?CBRS_FLYBY);
m_wndToolBar.SetPanestyle(m_wndToolBar.GetPanestyle()?&?~(CBRS_GRIPPER?|?CBRS_SIZE_DYNAMIC?|?CBRS_BORDER_TOP?|?CBRS_BORDER_BOTTOM?|?CBRS_BORDER_LEFT?|?CBRS_BORDER_RIGHT));
m_wndToolBar.SetOwner(this);
//?所有命令將通過此控件路由,而不是通過主框架路由:
m_wndToolBar.SetRouteCommandsViaframe(FALSE);
CMenu?menuSort;
menuSort.LoadMenu(IDR_POPUP_SORT);
m_wndToolBar.ReplaceButton(ID_SORT_MENU?CClassViewMenuButton
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件?????415232??2018-05-26?19:50??MyOpenGL_MFC1\Debug\MyOpenGL_MFC1.exe
?????文件????3050604??2018-05-26?19:50??MyOpenGL_MFC1\Debug\MyOpenGL_MFC1.ilk
?????文件????6605824??2018-05-26?19:50??MyOpenGL_MFC1\Debug\MyOpenGL_MFC1.pdb
?????文件???96927744??2018-05-26?19:49??MyOpenGL_MFC1\ipch\myopengl_mfc1-1c9ef9fc\myopengl_mfc1-a1d23c3d.ipch
?????文件???????9035??2018-04-27?08:43??MyOpenGL_MFC1\MyOpenGL_MFC1\ClassView.cpp
?????文件???????1275??2018-04-27?08:43??MyOpenGL_MFC1\MyOpenGL_MFC1\ClassView.h
?????文件???????8026??2018-05-09?11:22??MyOpenGL_MFC1\MyOpenGL_MFC1\Debug\cl.command.1.tlog
?????文件??????67168??2018-05-09?11:22??MyOpenGL_MFC1\MyOpenGL_MFC1\Debug\CL.read.1.tlog
?????文件???????8850??2018-05-09?11:22??MyOpenGL_MFC1\MyOpenGL_MFC1\Debug\CL.write.1.tlog
?????文件?????188817??2018-05-09?10:52??MyOpenGL_MFC1\MyOpenGL_MFC1\Debug\ClassView.obj
?????文件?????136947??2018-05-09?10:52??MyOpenGL_MFC1\MyOpenGL_MFC1\Debug\FileView.obj
?????文件??????????2??2018-05-26?19:50??MyOpenGL_MFC1\MyOpenGL_MFC1\Debug\li
?????文件??????????2??2018-05-26?19:50??MyOpenGL_MFC1\MyOpenGL_MFC1\Debug\li
?????文件??????????2??2018-05-26?19:50??MyOpenGL_MFC1\MyOpenGL_MFC1\Debug\li
?????文件??????????2??2018-05-26?19:50??MyOpenGL_MFC1\MyOpenGL_MFC1\Debug\li
?????文件??????????2??2018-05-26?19:50??MyOpenGL_MFC1\MyOpenGL_MFC1\Debug\li
?????文件??????????2??2018-05-26?19:50??MyOpenGL_MFC1\MyOpenGL_MFC1\Debug\li
?????文件??????????2??2018-05-26?19:50??MyOpenGL_MFC1\MyOpenGL_MFC1\Debug\li
?????文件??????????2??2018-05-26?19:50??MyOpenGL_MFC1\MyOpenGL_MFC1\Debug\li
?????文件??????????2??2018-05-26?19:50??MyOpenGL_MFC1\MyOpenGL_MFC1\Debug\li
?????文件??????????2??2018-05-26?19:50??MyOpenGL_MFC1\MyOpenGL_MFC1\Debug\li
?????文件??????????2??2018-05-26?19:50??MyOpenGL_MFC1\MyOpenGL_MFC1\Debug\li
?????文件??????????2??2018-05-26?19:50??MyOpenGL_MFC1\MyOpenGL_MFC1\Debug\li
?????文件??????????2??2018-05-26?19:50??MyOpenGL_MFC1\MyOpenGL_MFC1\Debug\li
?????文件??????????2??2018-05-26?19:50??MyOpenGL_MFC1\MyOpenGL_MFC1\Debug\li
?????文件???????3630??2018-05-26?19:50??MyOpenGL_MFC1\MyOpenGL_MFC1\Debug\li
?????文件???????8022??2018-05-26?19:50??MyOpenGL_MFC1\MyOpenGL_MFC1\Debug\li
?????文件???????2428??2018-05-26?19:50??MyOpenGL_MFC1\MyOpenGL_MFC1\Debug\li
?????文件?????103868??2018-05-09?10:52??MyOpenGL_MFC1\MyOpenGL_MFC1\Debug\MainFrm.obj
?????文件????????676??2018-05-26?19:50??MyOpenGL_MFC1\MyOpenGL_MFC1\Debug\mt.command.1.tlog
............此處省略89個文件信息
評論
共有 條評論