CellView.h
上传用户:mjs2008
上传日期:2021-05-16
资源大小:5089k
文件大小:4k
源码类别:

生物技术

开发平台:

Visual C++

  1. // CellView.h : interface of the CCellView class
  2. //
  3. /////////////////////////////////////////////////////////////////////////////
  4. #if !defined(AFX_CELLVIEW_H__4313C305_3F57_4316_8764_F3748248DBEE__INCLUDED_)
  5. #define AFX_CELLVIEW_H__4313C305_3F57_4316_8764_F3748248DBEE__INCLUDED_
  6. #if _MSC_VER > 1000
  7. #pragma once
  8. #endif // _MSC_VER > 1000
  9. #include <vector>
  10. #include "HSI.h"
  11. using namespace std;
  12. struct CENTER_POINT
  13. {
  14. int x;
  15. int y;
  16. int radius;
  17. };
  18. class CCellView : public CScrollView
  19. {
  20. protected: // create from serialization only
  21. CCellView();
  22. DECLARE_DYNCREATE(CCellView)
  23. // Attributes
  24. public:
  25. CCellDoc* GetDocument();
  26. // Operations
  27. public:
  28. // Overrides
  29. // ClassWizard generated virtual function overrides
  30. //{{AFX_VIRTUAL(CCellView)
  31. public:
  32. virtual void OnDraw(CDC* pDC);  // overridden to draw this view
  33. virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
  34. protected:
  35. virtual BOOL OnPreparePrinting(CPrintInfo* pInfo);
  36. virtual void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo);
  37. virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo);
  38. //}}AFX_VIRTUAL
  39. // Implementation
  40. public:
  41. void ProcessFillHoles(int wd, int ht);
  42. void FillTheHole(int wd,int ht);
  43. void CounterSeedsCenter();
  44. void ProcessCountSeeds(int wd, int ht, FLAGS *curf);
  45. void CountSeeds();
  46. void CalcCenterArea(int i,int j);
  47. void SaveIt(int i,int j, int radius);
  48. void MarkIt(int x,int y);
  49. void GenEdge();
  50. void GenEdge4();
  51. RGB* GetBit(int x, int y);
  52. void HsiProcess(bool bEx);
  53. bool FindInVectorHSI(vector<HSI> v, HSI c);
  54. void GenHSIData();
  55. void ProcHSI(bool bEx);
  56. void FlipBitmapData(RGB *buffer);
  57. bool LoadImageBuffer(HDC memdc,char *szFileName);
  58. virtual ~CCellView();
  59. // vector
  60. vector<HSI> m_vHSI;
  61. vector<HSI> m_vAllSelected;
  62. vector<CENTER_POINT> m_vCenterPoints;
  63. // 为了DrawDragRect方便
  64. SIZE m_DragRectSize;
  65. // points
  66. CPoint m_LastPoint;
  67. CPoint m_LBUpPoint;
  68. CPoint m_LBDnPoint;
  69. // rects
  70. RECT m_SelectedRect;
  71. // booleans
  72. bool m_bDrag;
  73. // booleans 菜单项
  74. bool m_bProcHsi; // ProcHsi菜单选中
  75. bool m_bDispSobel; // 显示Sobel
  76. bool m_bIsDispEdge; // 显示边缘
  77. bool m_bFullEdge;
  78. bool m_bForceKill;
  79. bool m_bForceAdd;
  80. #ifdef _DEBUG
  81. virtual void AssertValid() const;
  82. virtual void Dump(CDumpContext& dc) const;
  83. #endif
  84. protected:
  85. // Generated message map functions
  86. protected:
  87. //{{AFX_MSG(CCellView)
  88. afx_msg void OnFileOpen();
  89. afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
  90. afx_msg void OnMouseMove(UINT nFlags, CPoint point);
  91. afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
  92. afx_msg void OnProcHsi();
  93. afx_msg BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message);
  94. afx_msg void OnEditUndo();
  95. afx_msg void OnProcSobel();
  96. afx_msg void OnDispSobel();
  97. afx_msg void OnProcHistogram();
  98. afx_msg void OnProcSpecColor();
  99. afx_msg void OnDispEdge();
  100. afx_msg void OnDispRegion();
  101. afx_msg void OnProcReload();
  102. afx_msg void OnProcFindCenter();
  103. afx_msg void OnProcSobelCorrect();
  104. afx_msg void OnProcForceKill();
  105. afx_msg void OnProcForceSele();
  106. afx_msg void OnProcDilation();
  107. afx_msg void OnProcErosion();
  108. afx_msg void OnProcSmooth();
  109. afx_msg void OnProcStat();
  110. afx_msg void FillHoles();
  111. //}}AFX_MSG
  112. DECLARE_MESSAGE_MAP()
  113. };
  114. #ifndef _DEBUG  // debug version in CellView.cpp
  115. inline CCellDoc* CCellView::GetDocument()
  116.    { return (CCellDoc*)m_pDocument; }
  117. #endif
  118. /////////////////////////////////////////////////////////////////////////////
  119. //{{AFX_INSERT_LOCATION}}
  120. // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
  121. #endif // !defined(AFX_CELLVIEW_H__4313C305_3F57_4316_8764_F3748248DBEE__INCLUDED_)