CPoint3DCloudView.cpp
上传用户:yanweivga
上传日期:2008-02-19
资源大小:1056k
文件大小:6k
源码类别:

OpenGL

开发平台:

Visual C++

  1. // CPoint3DCloudView.cpp : implementation of the CCPoint3DCloudView class
  2. //
  3. #include "stdafx.h"
  4. #include "CPoint3DCloud.h"
  5. #include "CPoint3DCloudDoc.h"
  6. #include "CPoint3DCloudView.h"
  7. #ifdef _DEBUG
  8. #define new DEBUG_NEW
  9. #undef THIS_FILE
  10. static char THIS_FILE[] = __FILE__;
  11. #endif
  12. /////////////////////////////////////////////////////////////////////////////
  13. // CCPoint3DCloudView
  14. IMPLEMENT_DYNCREATE(CCPoint3DCloudView, CView)
  15. BEGIN_MESSAGE_MAP(CCPoint3DCloudView, CView)
  16. //{{AFX_MSG_MAP(CCPoint3DCloudView)
  17. ON_WM_DESTROY()
  18. ON_WM_CREATE()
  19. ON_WM_ERASEBKGND()
  20. ON_WM_LBUTTONDOWN()
  21. ON_WM_LBUTTONUP()
  22. ON_WM_MOUSEMOVE()
  23. ON_WM_MOUSEWHEEL()
  24. ON_WM_RBUTTONDOWN()
  25. ON_WM_RBUTTONUP()
  26. ON_WM_SIZE()
  27. ON_WM_MBUTTONDOWN()
  28. ON_WM_MBUTTONUP()
  29. //}}AFX_MSG_MAP
  30. // Standard printing commands
  31. ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)
  32. ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint)
  33. ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview)
  34. END_MESSAGE_MAP()
  35. /////////////////////////////////////////////////////////////////////////////
  36. // CCPoint3DCloudView construction/destruction
  37. CCPoint3DCloudView::CCPoint3DCloudView()
  38. {
  39. // TODO: add construction code here
  40. m_nViewOpenGL.SetProjectionMode(1);
  41. m_nViewOpenGL.SetTwoView(false);
  42. }
  43. CCPoint3DCloudView::~CCPoint3DCloudView()
  44. {
  45. }
  46. BOOL CCPoint3DCloudView::PreCreateWindow(CREATESTRUCT& cs)
  47. {
  48. // TODO: Modify the Window class or styles here by modifying
  49. //  the CREATESTRUCT cs
  50. return CView::PreCreateWindow(cs);
  51. }
  52. /////////////////////////////////////////////////////////////////////////////
  53. // CCPoint3DCloudView drawing
  54. void CCPoint3DCloudView::OnDraw(CDC* pDC)
  55. {
  56. CCPoint3DCloudDoc* pDoc = GetDocument();
  57. ASSERT_VALID(pDoc);
  58. // TODO: add draw code for native data here
  59. m_nViewOpenGL.OnInitRenderOpenGL();
  60.       pDoc->OnDraw();
  61. m_nViewOpenGL.SwapBufferOpenGL();
  62. }
  63. /////////////////////////////////////////////////////////////////////////////
  64. // CCPoint3DCloudView printing
  65. BOOL CCPoint3DCloudView::OnPreparePrinting(CPrintInfo* pInfo)
  66. {
  67. // default preparation
  68. return DoPreparePrinting(pInfo);
  69. }
  70. void CCPoint3DCloudView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
  71. {
  72. // TODO: add extra initialization before printing
  73. }
  74. void CCPoint3DCloudView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
  75. {
  76. // TODO: add cleanup after printing
  77. }
  78. /////////////////////////////////////////////////////////////////////////////
  79. // CCPoint3DCloudView diagnostics
  80. #ifdef _DEBUG
  81. void CCPoint3DCloudView::AssertValid() const
  82. {
  83. CView::AssertValid();
  84. }
  85. void CCPoint3DCloudView::Dump(CDumpContext& dc) const
  86. {
  87. CView::Dump(dc);
  88. }
  89. CCPoint3DCloudDoc* CCPoint3DCloudView::GetDocument() // non-debug version is inline
  90. {
  91. ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CCPoint3DCloudDoc)));
  92. return (CCPoint3DCloudDoc*)m_pDocument;
  93. }
  94. #endif //_DEBUG
  95. /////////////////////////////////////////////////////////////////////////////
  96. // CCPoint3DCloudView message handlers
  97. void CCPoint3DCloudView::OnDestroy() 
  98. {
  99. CView::OnDestroy();
  100. // TODO: Add your message handler code here
  101. m_nViewOpenGL.OnDestroyOpenGL();
  102. }
  103. int CCPoint3DCloudView::OnCreate(LPCREATESTRUCT lpCreateStruct) 
  104. {
  105. if (CView::OnCreate(lpCreateStruct) == -1)
  106. return -1;
  107. // TODO: Add your specialized creation code here
  108. m_nViewOpenGL.OnInitOpenGL(GetSafeHwnd());
  109. return 0;
  110. }
  111. BOOL CCPoint3DCloudView::OnEraseBkgnd(CDC* pDC) 
  112. {
  113. // TODO: Add your message handler code here and/or call default
  114. return TRUE;
  115. // return CView::OnEraseBkgnd(pDC);
  116. }
  117. void CCPoint3DCloudView::OnLButtonDown(UINT nFlags, CPoint point) 
  118. {
  119. // TODO: Add your message handler code here and/or call default
  120. m_nViewOpenGL.OnLButtonDown(nFlags,point);
  121. CView::OnLButtonDown(nFlags, point);
  122. }
  123. void CCPoint3DCloudView::OnLButtonUp(UINT nFlags, CPoint point) 
  124. {
  125. // TODO: Add your message handler code here and/or call default
  126. m_nViewOpenGL.OnLButtonUp(nFlags,point);
  127. InvalidateRect(NULL,FALSE); 
  128. CView::OnLButtonUp(nFlags, point);
  129. }
  130. void CCPoint3DCloudView::OnMouseMove(UINT nFlags, CPoint point) 
  131. {
  132. // TODO: Add your message handler code here and/or call default
  133. m_nViewOpenGL.OnMouseMove(nFlags,point);
  134. InvalidateRect(NULL,FALSE); 
  135. CView::OnMouseMove(nFlags, point);
  136. }
  137. BOOL CCPoint3DCloudView::OnMouseWheel(UINT nFlags, short zDelta, CPoint pt) 
  138. {
  139. // TODO: Add your message handler code here and/or call default
  140. m_nViewOpenGL.OnMouseWheel(nFlags, zDelta, pt);
  141. InvalidateRect(NULL,FALSE);
  142. return CView::OnMouseWheel(nFlags, zDelta, pt);
  143. }
  144. void CCPoint3DCloudView::OnRButtonDown(UINT nFlags, CPoint point) 
  145. {
  146. // TODO: Add your message handler code here and/or call default
  147. m_nViewOpenGL.OnRButtonDown(nFlags, point);
  148. CView::OnRButtonDown(nFlags, point);
  149. }
  150. void CCPoint3DCloudView::OnRButtonUp(UINT nFlags, CPoint point) 
  151. {
  152. // TODO: Add your message handler code here and/or call default
  153. m_nViewOpenGL.OnRButtonUp(nFlags,point);
  154. InvalidateRect(NULL,FALSE); 
  155. CView::OnRButtonUp(nFlags, point);
  156. }
  157. void CCPoint3DCloudView::OnSize(UINT nType, int cx, int cy) 
  158. {
  159. CView::OnSize(nType, cx, cy);
  160. // TODO: Add your message handler code here
  161.     m_nViewOpenGL.OnSizeOpenGL(nType, cx, cy);
  162. }
  163. void CCPoint3DCloudView::OnMButtonDown(UINT nFlags, CPoint point) 
  164. {
  165. // TODO: Add your message handler code here and/or call default
  166. m_nViewOpenGL.OnMButtonDown(nFlags,point);
  167. CView::OnMButtonDown(nFlags, point);
  168. }
  169. void CCPoint3DCloudView::OnMButtonUp(UINT nFlags, CPoint point) 
  170. {
  171. // TODO: Add your message handler code here and/or call default
  172. m_nViewOpenGL.OnMButtonUp(nFlags,point);
  173. InvalidateRect(NULL,FALSE); 
  174. CView::OnMButtonUp(nFlags, point);
  175. }