#pragma once #include "DlgDeffectHistroy.h" #include "DlgDefectHistoryMap.h" #include "DlgAlignHistory.h" typedef std::vector VectorWndPtr; typedef std::vector::iterator VectorWndPtrIt; typedef std::vector VectorString; typedef std::vector::iterator VectorStringIt; typedef std::vector::const_iterator constVectorStringIt; // CDlgReviewHistoryTool 대화 상자 interface IDialogReviewHistory2Parent { virtual CGlassResult* ISP2P_GetNewHistoryResult(int& nHistoryResultCount) = 0; // new glass result virtual CGlassResult* ISP2P_GetHistoryResult(int nIndex) = 0; // get glass result virtual SDefectFilter* ISP2P_GetDefectFilter() = 0; virtual void DDM2P_SelectDefect2(int nDefectPosX, int nDefectPosY, int nDefectMarginX, int nDefectMarginY, CGlassResult* pHistoryResult) = 0; }; class CDlgReviewHistoryTool : public CDialogEx, public IDialogDefectHistoryList2Parent,public IDialogDefectHistoryMap2Parent,public IDialogAlignHistoryList2Parent { DECLARE_DYNAMIC(CDlgReviewHistoryTool) public: CDlgReviewHistoryTool(CWnd* pParent = nullptr); // 표준 생성자입니다. virtual ~CDlgReviewHistoryTool(); protected: IDialogReviewHistory2Parent* m_pDDL2P; // 대화 상자 데이터입니다. #ifdef AFX_DESIGN_TIME enum { IDD = IDD_DLG_REVIEW_HISTORY_TOOL }; #endif protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 지원입니다. void SetDefectImage(CString strReview, CGlassResult* pHistoryResult); void UpdateSelectDefectMap(CDefectResult* pDefectResult); void SetDefectIndexInfo(int nIndex); void DefectnoImage(); int GetDefectIndex() { return m_nDefectIndex; } void SetReviewName(CString strReviewName) { m_strReviewName = strReviewName; } void DrawnoImage(); void AlignnoImage(); DECLARE_MESSAGE_MAP() public: CDlgDeffectHistroy* m_pDlgDefectHistory; CDlgDefectHistoryMap* m_pDlgDefectHistoryMap; CDlgAlignHistory* m_pDlgAlignHistory; CDefectResult* pDefectInfo = NULL; bool m_bHistory; protected: VectorWndPtr m_vecWndPtr; VectorString m_vecString; const MapDefectResult* m_pMapDefectResult; const SDefectFilter* m_pDefectFilter; int m_nDefectIndex; CString m_strReviewName; HICON m_hIcon; int m_DefectIdx; double m_dDefectReviewPosX; double m_dDefectReviewPosY; double m_dDefectAoiPosX; double m_dDefectAoiPosY; CString m_dDefectSizeType; int m_dDefectSacnIdx; int m_dDefectCamIdx; CString m_dDefectAOIFileName; CStatic m_PictureControl_AOI; CStatic m_PictureControl_Review; CStatic m_PictureControl_Align; CStatic m_PictureControl_Align2; int m_dDefectArea; CRect m_picture_rect; CRect m_picture_rect2; CRect m_picture_rect3; CRect m_picture_rect4; CImage m_DefectImage; CImage m_ReviewImage; CImage m_AlignImage; CImage m_AlignImage2; CGridCtrl m_ctrlOriginInfo; CGridCtrl m_ctrlAlignInfo; CString m_strFirstImage; CString m_strSecondImage; public: void SetDDL2P(IDialogReviewHistory2Parent* pDDL2P) { m_pDDL2P = pDDL2P; } CListBox m_ctrlHistoryList; afx_msg void OnBnClickedOk(); virtual BOOL OnInitDialog(); virtual BOOL UpdateSelectDefectInfoMap2(int nIndex); virtual BOOL UpdateSelectDefectInfoMap3(int nIndex); virtual void SelectDefect(int nDefectPosX, int nDefectPosY, int nDefectMarginX, int nDefectMarginY); virtual BOOL Mathching(CDefectResult* pDefectResult); void UpdateProcess(const CGlassResult* pGlassResult); void OnDblclkList1(); afx_msg void OnSelchangeList1(); void SetSelectIndex(int nSelectIdx) { m_nSelectCount = nSelectIdx; } int GetSelectIndex() { return m_nSelectCount; } void SetSelectDefectIndex(int nSelectIdx) { m_nSelectDefectIndex = nSelectIdx; } int GetSelectDefectIndex() { return m_nSelectDefectIndex; } void UpdateDefectFilter(const SDefectFilter* pDefectFilter); void CreateTabDlg(); void InitTabControl(); void UpdateSelectDefectMap2(CDefectResult* pDefectResult); void UpdateSelect(CDefectResult* pDefectResult); CString GetReviewName() { return m_strReviewName; } int m_nListCount = 0; int m_nSelectCount = 0; int m_nSelectDefectIndex = 0; BOOL m_bAllDefect = 0; CTabCtrl m_ctrlHistoryTab; afx_msg void OnSelchangeTabHistoryControl(NMHDR *pNMHDR, LRESULT *pResult); void SetActiveDialog(int nTabIdx); public: void GetHistoryList(); void SetHistoryTemp(int nIndex); void SetAllDefect(BOOL bCheck) { m_bAllDefect = bCheck; } virtual BOOL GetAllDefect() { return m_bAllDefect; } CStatic m_ctrlDefectMap; CGlassResult* m_pHistoryTemp; afx_msg void OnTimer(UINT_PTR nIDEvent); afx_msg void OnPaint(); afx_msg void OnBnClickedUseDefect(); afx_msg void OnBnClickedImageRotation(); afx_msg void OnBnClickedImageFlip(); void InitGridOriginInfo(); void InitGridAlignInfo(); };