Test1View.h
上传用户:wangdan
上传日期:2022-06-30
资源大小:739k
文件大小:4k
源码类别:

3D图形编程

开发平台:

Visual C++

  1. // Test1View.h : interface of the CTest1View class
  2. //
  3. /////////////////////////////////////////////////////////////////////////////
  4. #if !defined(AFX_TEST1VIEW_H__5C9CAAD1_A88D_46D3_A756_DC509BDDBE2D__INCLUDED_)
  5. #define AFX_TEST1VIEW_H__5C9CAAD1_A88D_46D3_A756_DC509BDDBE2D__INCLUDED_
  6. #include "Test1Doc.h"
  7. #if _MSC_VER > 1000
  8. #pragma once
  9. #endif // _MSC_VER > 1000
  10. class CMainFrame;
  11. class CTest1View : public CView
  12. {
  13. protected: // create from serialization only
  14. CTest1View();
  15. DECLARE_DYNCREATE(CTest1View)
  16. CClientDC *m_pDC;
  17. int nWithy;//确定图形围谁转0X,1Y,2Z;
  18. int m_Prox,m_Proy,m_Proz; //缩放因子
  19. int m_First,m_Second,m_Third; //数组值
  20. bool m_bDown;
  21. long m_xM,m_yM; //记录鼠标落下时落点的横纵坐标
  22. long m_xRect, m_yRect; //当前窗口的大小
  23. CPoint  m_MouseDown, m_MouseMove;
  24. bool    m_bIsMove; //判断当前选中的是选择按钮还是旋转按钮
  25. //true为旋转,false为选取
  26. CMainFrame *m_pFr;
  27. bool m_bMoveSel; //要进行选取的标志
  28. int m_SelType; //选取方式,0为矩形,1为椭圆
  29. HBITMAP m_hBmp;    //拷贝下来的位图句柄
  30. int m_Zoom; //放大倍数
  31. GLfloat m_xMove, m_yMove, m_zMove; //画点时需要移动坐标像素数
  32. bool m_bLighting; //是否使用光照效果
  33. // Attributes
  34. public:
  35. CTest1Doc* GetDocument();
  36. bool IsMouseInWndRect(CPoint point);
  37. // Operations
  38. public:
  39. bool m_bGetFileSuccess;
  40. CString m_FileName;
  41. GLfloat m_nMinDepth;
  42. GLfloat m_nMaxDepth;
  43. CRect   m_SelRect;
  44. // Overrides
  45. // ClassWizard generated virtual function overrides
  46. //{{AFX_VIRTUAL(CTest1View)
  47. public:
  48. virtual void OnDraw(CDC* pDC);  // overridden to draw this view
  49. virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
  50. virtual void OnInitialUpdate();
  51. protected:
  52. virtual BOOL OnPreparePrinting(CPrintInfo* pInfo);
  53. virtual void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo);
  54. virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo);
  55. //}}AFX_VIRTUAL
  56. // Implementation
  57. public:
  58. void SetViewPort(int cx, int cy);
  59. bool IsMouseinSelRect(CRect rect, CPoint point);
  60. GLfloat GetMidZPoint();
  61. GLfloat GetMidYPoint();
  62. GLfloat GetMidXPoint();
  63. BOOL SaveBitmapToFile(HBITMAP hBitmap ,LPSTR lpFileName);
  64. HBITMAP CopySelArearToBitmap(LPRECT lpRect);
  65. void Draw3DRect();
  66. void DrawText();
  67. void DrawSelArea(CDC *pDC);
  68. GLfloat GetMinDepth();
  69. GLfloat GetMaxDepth();
  70. static UINT ReadFile(LPVOID lp);
  71. void ZeroArray();
  72. void ResortData();
  73. void PutPoint();
  74. void DrawLines();
  75. void IniOpenGL();
  76. bool bSetPixelFormat();
  77. bool GetFileData(CString filename);
  78. virtual ~CTest1View();
  79. #ifdef _DEBUG
  80. virtual void AssertValid() const;
  81. virtual void Dump(CDumpContext& dc) const;
  82. #endif
  83. protected:
  84. // Generated message map functions
  85. protected:
  86. //{{AFX_MSG(CTest1View)
  87. afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
  88. afx_msg void OnDestroy();
  89. afx_msg void OnSize(UINT nType, int cx, int cy);
  90. afx_msg void OnTurnx();
  91. afx_msg void OnTurny();
  92. afx_msg void OnTurnz();
  93. afx_msg BOOL OnEraseBkgnd(CDC* pDC);
  94. afx_msg void OnResume();
  95. afx_msg BOOL OnMouseWheel(UINT nFlags, short zDelta, CPoint pt);
  96. afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
  97. afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
  98. afx_msg void OnMouseMove(UINT nFlags, CPoint point);
  99. afx_msg void OnContextMenu(CWnd* pWnd, CPoint point);
  100. afx_msg void OnKillFocus(CWnd* pNewWnd);
  101. //}}AFX_MSG
  102. DECLARE_MESSAGE_MAP()
  103. };
  104. #ifndef _DEBUG  // debug version in Test1View.cpp
  105. inline CTest1Doc* CTest1View::GetDocument()
  106.    { return (CTest1Doc*)m_pDocument; }
  107. #endif
  108. /////////////////////////////////////////////////////////////////////////////
  109. //{{AFX_INSERT_LOCATION}}
  110. // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
  111. #endif // !defined(AFX_TEST1VIEW_H__5C9CAAD1_A88D_46D3_A756_DC509BDDBE2D__INCLUDED_)