void CFormCommandView::Dump(CDumpContext& dc) const { CFormView::Dump(dc); }
CToolDoc* CFormCommandView::GetDocument() // non-debug version is inline { ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CToolDoc))); return (CToolDoc*)m_pDocument; }
#endif //_DEBUG
// OnPaint
void CFormCommandView::OnPaint() { // Device context for painting CPaintDC dc(this); // Options are stored in Application CToolApp *pApp = (CToolApp *)AfxGetApp(); CRect rect; // Color back m_ControlBackColor.GetWindowRect(&rect); ScreenToClient(&rect); CBrush BrushBack(pApp->m_OptionColorGlBack); dc.FillRect(&rect,&BrushBack); }
// OnLButtonUp
void CFormCommandView::OnLButtonUp(UINT nFlags, CPoint point)
{ CRect rect; CToolApp *pApp = (CToolApp *)AfxGetApp();
6
// Option back color m_ControlBackColor.GetWindowRect(&rect); ScreenToClient(&rect); if(rect.PtInRect(point)) { CColorDialog dlg(pApp->m_OptionColorGlBack); if(dlg.DoModal()==IDOK) { pApp->m_OptionColorGlBack = dlg.GetColor(); CRenderView *pView = (CRenderView *)GetRenderView(); pView->m_ClearColorRed (float)GetRValue(pApp->m_OptionColorGlBack) / 255.0f;
pView->m_ClearColorGreen
(float)GetGValue(pApp->m_OptionColorGlBack) / 255.0f;
pView->m_ClearColorBlue (float)GetBValue(pApp->m_OptionColorGlBack) / 255.0f;
this->InvalidateRect(&rect,FALSE); pView->InvalidateRect(NULL,FALSE); } } CFormView::OnLButtonUp(nFlags, point); }
// GetRenderView
CView *CFormCommandView::GetRenderView() { CToolApp *pApp = (CToolApp *)AfxGetApp(); CMainFrame *pFrame = (CMainFrame *)pApp->m_pMainWnd; CView *pView = (CView *)pFrame->m_wndSplitter.GetPane(0,1); return pView; }
// Model
void CFormCommandView::OnRadioModel1() { glPolygonMode(GL_FRONT_AND_BACK,GL_LINE); this->GetRenderView()->InvalidateRect(NULL,FALSE); }
7
= = =
void CFormCommandView::OnRadioModel2() { glPolygonMode(GL_FRONT_AND_BACK,GL_FILL); this->GetRenderView()->InvalidateRect(NULL,FALSE); }
// OnCheckSmooth
void CFormCommandView::OnCheckSmooth() { m_Smooth = !m_Smooth; if(m_Smooth) glShadeModel(GL_SMOOTH); else glShadeModel(GL_FLAT); this->GetRenderView()->InvalidateRect(NULL,FALSE); }
// OnCheckAntialias // Toggle antialiased lines
void CFormCommandView::OnCheckAntialias() { m_Antialias = !m_Antialias; if(m_Antialias) { glEnable(GL_LINE_SMOOTH); glEnable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA); glHint(GL_LINE_SMOOTH_HINT,GL_NICEST); glLineWidth(1.5f); } else { glDisable(GL_LINE_SMOOTH); glDisable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA); glHint(GL_LINE_SMOOTH_HINT,GL_NICEST); glLineWidth(1.0f); }
8
}
GetRenderView()->InvalidateRect(NULL,FALSE);
3、MainFrm.cpp #include \#include \
// Download by http://www.codefans.net #include \
#include \#include \
#ifdef _DEBUG
#define new DEBUG_NEW #undef THIS_FILE
static char THIS_FILE[] = __FILE__; #endif
// CMainFrame
IMPLEMENT_DYNAMIC(CMainFrame, CFrameWnd)
BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd) //{{AFX_MSG_MAP(CMainFrame) ON_WM_CREATE() ON_WM_PAINT() //}}AFX_MSG_MAP END_MESSAGE_MAP()
static UINT indicators[] = { ID_SEPARATOR, // status line indicator ID_INDICATOR_CAPS, ID_INDICATOR_NUM, ID_INDICATOR_SCRL, };
// CMainFrame construction/destruction CMainFrame::CMainFrame() { }
9
CMainFrame::~CMainFrame() { }
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CFrameWnd::OnCreate(lpCreateStruct) == -1) return -1; if (!m_wndToolBar.Create(this) || !m_wndToolBar.LoadToolBar(IDR_MAINFRAME)) { TRACE0(\ return -1; // fail to create } if (!m_wndStatusBar.Create(this) || !m_wndStatusBar.SetIndicators(indicators, sizeof(indicators)/sizeof(UINT))) { TRACE0(\ return -1; // fail to create } m_wndToolBar.SetBarStyle(m_wndToolBar.GetBarStyle() | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC); return 0; }
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs) { cs.cx = 600; cs.cy = 500; return CFrameWnd::PreCreateWindow(cs); }
// CMainFrame diagnostics #ifdef _DEBUG
void CMainFrame::AssertValid() const { CFrameWnd::AssertValid(); }
10
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库研究生计算机图形学课程室内场景OpenGL--实验报告(2)在线全文阅读。
相关推荐: