#pragma once #include "akGraph/akGraphBasic3.h" #include struct SPixelInfo { SPixelInfo() { nWidthPixel = 0; nHeightPixel = 0; dDiagonalPixel = 0; dWidthRealUM = 0; dHeightRealUM = 0; dDiagonalRealUM = 0; } int nWidthPixel; int nHeightPixel; double dDiagonalPixel; double dWidthRealUM; double dHeightRealUM; double dDiagonalRealUM; }; class CakDataImage2 { public: CakDataImage2(void); virtual ~CakDataImage2(void); struct _DataImage2 { _DataImage2() { m_nDrawPosX = m_nDrawPosY = 0; m_nRoate = 0; m_nDrawWidth = m_nDrawHeight = 0; m_bReverseX = m_bReverseY = false; } CString m_strBitmapFilename; CBitmap m_Bitmap; BITMAP m_Bits; unsigned char* m_pBitmapData; //±×¸®±â Á¤º¸ [±èÅÂÇö 2018/12/7] int m_nProjectionType; int m_nDrawPosX, m_nDrawPosY; int m_nDrawWidth, m_nDrawHeight; float m_nRoate; bool m_bReverseX, m_bReverseY; }; public: int SetImageData(char* pFileName, int nImageIndex = 0); //add°¡ ¾Æ´Ï¸é 0¹ø À妽º¿¡ ³Ö´Â´Ù. int GetScaleWidth(); int GetScaleHeight(); BOOL GetTrackerRect(CRect & rtRect); void DrawROIRect(CDC * pDC); int GetImageDataNum() { return m_vecImageData.size(); }; public: std::vector<_DataImage2*> m_vecImageData; double m_dWidthScale; double m_dHeightScale; double m_dResolution; BOOL m_bDrawTracker; CPoint m_ptTrackerStart; // CCHRectTracker m_rectTracker; CRect m_rtROIRect; SPixelInfo m_sROIInfo; // Scroll Pos int m_nVScroll; int m_nHScroll; // Max Scroll Pos int m_nMaxVScroll; int m_nMaxHScroll; }; class CakImageView : public CakGraphBasic3, public CakDataImage2 { public: CakImageView(); virtual ~CakImageView(); public: virtual void RenderSeries(Graphics* grfx, CDC* pDC); virtual void SetAutoScale(); virtual void SetResize(); virtual void RenderImage(Graphics* grfx, CDC* pDC); virtual void OnMouseInput(akMouseEvent mouseevent, CPoint point); };